CJ McCollum added 27 points and Jusuf Nurkic had 17 points and nine rebounds for Portland, which has won seven of eight.
DeMar DeRozan finished with 20 points and Lonnie Walker added 18 for the Spurs.
Lillard hit a 3-pointer that gave the Blazers a 90-75 lead going into the fourth quarter and Portland led by as many as 26 points in the period. Neither Lillard nor Nurkic played in the fourth.
Both teams were playing the second of back-to-backs. Portland solidified its hold on sixth place in the Western Conference with a 106-101 victory Friday night over the Lakers, which gave the Blazers the tiebreaker against their foe.
The Blazers moved within one-half game of fifth-place Dallas in the West. The top six teams avoid the NBA’s new play-in tournament.
“Now it’s just go time,” Nurkic said.
Portland is coming together in the closing stretch of the regular season after faltering last month with 10 losses in a 13-game span.
“I feel like every team has to go through that at some point of the season, to really find ourselves and know what you have to do,” said Norman Powell, who finished with 18 points. “I think after that we’ve been able to put together multiple games of high-level basketball, top to bottom.”
San Antonio, coming off a 113-104 victory over Sacramento, has lost six of seven but is 10th in the West, two games ahead of New Orleans for the final play-in spot.
“We are playing for something. I hope everyone in the locker room understands that,” said Dejounte Murray, who scored 15 points. ” I think we’re a better team than what the record shows.”
Portland was without Carmelo Anthony, who has a right ankle sprain. The 10-time All-Star, who is averaging 13.5 points off the bench, hadn’t missed a game this season.
McCollum’s 3-pointer gave the Blazers a 36-34 lead midway through the second quarter. He added another 3 after Enes Kanter’s layup.
Lillard’s 3-pointer stretched the lead to 52-43 and he finished the opening half with 21 points. Portland led 57-47 at the break.
“I think we’ve been playing good basketball for a while. And tonight was just another one,” Blazers coach Terry Stotts said. “I didn’t think we got loose with the game, even though we had a lead, especially in the third quarter when we were able to build the lead up.”
Spurs: Dropped two of three games against the Blazers this season. The Spurs were outrebounded 63-40, including 18-7 on the offensive end. “The offensive rebounds were just ridiculous. I think at one point it was like 20-2,” Murray said. “It was tough. We’ve got to play better.”
Trail Blazers: Hosted fans at the Moda Center for the second time. The team can bring in about 10% of capacity, roughly 1,900 people. … Stotts won his 399th game with the Blazers. … Portland’s 63 rebounds were a season high.
30 FOR 30
Lillard has scored 30 or more points in five straight games. He ranks third in the league with 32 30-point or better games.
“There’s been so many ups and downs, injuries, this whole COVID situation, travel,” DeRozan said. “You can find every excuse in the world but we’re still sitting here trying to figure out a way to continue playing.”
Spurs: Host Milwaukee on Monday.
Trail Blazers: Host Houston on Monday.