Robin Lopez added 15 points and 14 rebounds for the Blazers, who had been in a funk with losses in five of their last six games. Portland (44-24) has also struggled with the absence of injured forward LaMarcus Aldridge.
Brandon Knight had 24 points and Ramon Sessions added a season-high 23 for Milwaukee, which lost its fifth straight. The Bucks (13-55) are just 2-24 against the Western Conference.
Despite the worst record in the NBA, the Bucks gave the Blazers trouble for most of the game. There were 23 lead changes in regulation, and neither team was able to pull ahead by double digits.
Sessions, acquired by the Bucks at the trade deadline, had a chance to win it with a jumper at the buzzer, but he was off and the game went to overtime tied at 98.
Portland scored the first two baskets in the extra period, but Khris Middleton hit a 3-pointer and ZaZa Pachulia made a layup to give the Bucks a 103-102 lead.
Wesley Matthews' basket and layup put Portland back in front before Lillard dunked and hit a long jumper to make it 109-103. Middleton's pull-up jumper closed the gap for the Bucks, until Mathews' 3 made it 112-105.
Middleton added another jumper with just over a minute to go but Milwaukee couldn't catch up.
Mo Williams had 23 points off the bench for Portland and Lillard, who got off to a slow start, had 20 points -- 15 of which came in the fourth quarter and overtime.
The Blazers were without Aldridge for the third straight game because of a lower back contusion. He is also likely to miss Thursday's game at home against Washington.
The Blazers led 52-47 at the half but Milwaukee kept up and narrowed it to 67-66 on Knight's short jumper before going ahead on Giannis Antetokounmp's basket. Sessions' short jumper extended the lead.
Portland led 75-72 going into the final quarter but Sessions made back-to-back jumpers to give the Bucks a 84-81 lead with 8:11 left. Matthews answered with a 3-pointer for the Blazers, before Lopez scored on a layup and a free throw to give Portland an 87-84 advantage.
Lillard hit a 3-pointer that gave the Blazers a 96-92 lead with 1:58 left.
After free throws from Knight, Ersan Ilyasove made a layup to even the score at 96 with 48 seconds to go.
Lopez appeared to tip in a shot, but the basket was waived off as boos filled the Moda Center. Sessions made one of a pair of free throws, and the Blazers couldn't score on the other end.
Sessions made one of another pair of shots from the line, but Lillard made a layup to tie it again at 98 with 4.9 seconds on the clock.
NOTES: The Blazers downed the Bucks 91-82 in Milwaukee on Nov. 20. That snapped a four-game Milwaukee winning streak in the series. ... Portland coach Terry Stotts was head coach of the Bucks from 2005-07. ... O.J. Mayo did not play for the fifth straight game for the Bucks.