PORTLAND -- Khris Middleton scored 26 points, and the Bucks outlasted the Trail Blazers for a 93-90 victory on Tuesday night.
"This shows how much we've grown over the season," Middleton said. "At this time last season we would've panicked but tonight and on this road trip we stayed with it and weathered the storm."
Giannis Antetokounmpo added 22 points for the Bucks (35-35), who have won nine of 11 as they jostle for playoff positon in the Eastern Conference. They are a half-game ahead of Miami for the seventh spot.
Portland was Milwaukee's fourth stop on a five-game road trip.
The Trail Blazers (32-38) had won three in a row and eight of 10. They dropped to a full game back of idle Denver for the final postseason berth in the West.
Damian Lillard led Portland with 31 points, and CJ McCollum added 21. Jusuf Nurkic had 11 points and 14 rebounds.
Portland trailed by as many as 15 points in the third quarter, but closed to 70-68 early in the fourth on a pair of free throws from Allen Crabbe. McCollum's consecutive layups gave the Blazers an 88-85 lead with 3:46 left.
The Bucks retook the lead on Middleton's hook shot, and John Henson's putback made it 93-90 with 1:39 to go.
As the clock wound down, Lillard missed a 3-pointer and McCollum missed a layup. Middleton also missed on the other end.
Portland got the ball with 6.4 seconds left, but Lillard's 3-pointer at the buzzer bounced off the backboard.
"I peeked up at the clock, and at the same time I know CJ was coming around because I heard him call my name," Lillard said. "Looking at it on film the right play, I think, would've been to toss it back to him. He probably could have got a cleaner and better look than I got, but it happened too fast."
Portland didn't score for the last 3:12 of the game. Bucks coach Jason Kidd echoed Middleton in saying the team was able keep its focus on defense in the final minutes.
"We kept our discipline and we didn't panic when they made their run," Kidd said.
Portland was coming off a 115-104 victory at Miami on Sunday. Lillard had a season-best 49 points with nine 3-pointers, which matched a franchise high. The win capped a 4-1 road trip.
"I thought we competed hard still," Lillard said. "Tonight the game just didn't go well. We had to fight and scratch and claw to be in the situation we were in."
Milwaukee was coming off a 117-92 loss at Golden State on Saturday.
The Bucks outscored the Blazers 30-14 in the second quarter for a 48-35 lead at the break.
Portland closed to 65-58 on Lillard's layup with just under three minutes to go in the third. The Blazers finished the quarter on a 14-4 run to trim the Bucks' lead to 67-63 heading into the fourth.