PORTLAND, Ore. -- Both teams were short-handed, but the San Antonio Spurs filled the void a little bit better than the Portland Trail Blazers did Wednesday night at the Moda Center.

Guard Patty Mills scored 29 points in exactly 29 minutes off the bench, leading the Spurs to a 111-109 victory in a battle between two of the top teams in the Western Conference.

Guard Marco Belinelli added 20 points for the Spurs, who won their third consecutive game despite the absence of three starters -- forward Tim Duncan, who rested, and injured forward Kawhi Leonard and guard Tony Parker.

Guard Damian Lillard scored 31 points for the Trail Blazers, and guard Mo Williams added 19 points off the bench for the Trail Blazers, who were missing injured three injured frontcourt players: LaMarcus Aldridge, Joel Freeland and Meyers Leonard.

Both teams played smaller units, with the Spurs getting the better of it by scoring 93 points in the final three quarters.

"We tried to beat them at their game, and they did better than us," Portland coach Terry Stotts said. "They played their small lineup more effectively. We didn't do enough defensively to get a win."

Mills made 13 of 26 shots from the field overall and scored 13 points in the fourth quarter as San Antonio (40-15) prevailed in a nip-and-tuck battle down the stretch. The one-time Trail Blazer is in the midst of a hot streak, averaging 21 points in his past seven games.

"Patty was spectacular again," San Antonio coach Gregg Popovich said. "He's a tough cover. He's a great competitor, and he has helped us like that all year long."

The Spurs, trailing by one at intermission, outscored Portland 18-8 at the onset of the third quarter to take a 69-60 lead. The Blazers then seized the momentum, going on a 19-6 run to forge a 79-75 advantage late in the quarter. Portland (36-18) took an 81-79 edge into the final period.

San Antonio scored 10 straight points to jump ahead 89-81 as the Blazers went scoreless for nearly the first four minutes of the fourth quarter. Soon it was 92-82, with Mills leading the way.

The Spurs' advantage was 97-87 with four minutes to play, but the Blazers stormed back, Lillard's jumper closing the gap to 99-97 with 2:20 remaining. A steal and solo dunk by Portland guard Wesley Matthews tied the score at 101 with 1:50 to play.

San Antonio came back with five points in a row -- a Belinelli 3-pointer and a layup by center Tiago Splitter -- to go ahead 106-101 with 57.2 seconds to go. Splitter's free throw made it 107-101 with 32.4 ticks left.

A Williams trey with 24.1 seconds remaining gave the Blazers life, but after a quick exchange of turnovers, Portland fouled San Antonio guard Danny Green with 11.4 seconds to go. Green's two free throws salted away the win for the Spurs.

Portland lost for the eighth time in 13 games. The Blazers are 14-14 after starting the season 22-4.

"I'm not concerned," said Lillard, who shot 13-for-21 from the field and had six assists and four rebounds. "It's just a rough stretch. We're going to have to find a way to turn it back around. It's been a great season so far, but teams are coming after us now. We're more of a target. We have to do a better job of accepting it and going after teams."

Popovich was particularly happy his ailing team won back-to-back games. The Spurs beat the Los Angeles Clippers 113-103 Tuesday night at Staples Center.

"I couldn't be prouder of the guys," he said. "They worked very hard to get those two wins. It's pretty special for them."

NOTES: Spurs coach Gregg Popovich chose to rest C Tim Duncan, who played 38 minutes against the Clippers on Tuesday night, and G Tony Parker due to various nagging injuries (Achilles tendon, groin, shin, shoulder). F Kawhi Leonard missed his 13th straight game with a broken hand. For Portland, F LaMarcus Aldridge (groin), C Joel Freeland (knee) and C Meyers Leonard (ankle) were missing. ... Aldridge did not play on the night when a promotional LaMarcus Aldridge drinking glass was given to spectators. It was the first time any Portland starter missed a game all year. C Robin Lopez, Aldridge, F Nicolas Batum, G Wesley Matthews and G Damian Lillard started each of the previous 53 games. ... Even with the loss, the Blazers own 14 wins in their past 20 meetings with the Spurs, including eight wins over the past 10 matchups in Portland. The Blazers are now 2-1 against San Antonio this season.