C.J. McCollum added 26 points for the Trail Blazers, who were coming off a 23-point loss in New Orleans on Tuesday.
Aldridge had 19 points and seven rebounds after missing two games with a minor heart arrhythmia. He was cleared Wednesday morning and does not have any playing restrictions.
Kawhi Leonard had 34 points to lead San Antonio (52-15), which had won 11 of 12 entering the game but fell one game behind Golden State for the league's best record.
Trailing 104-97 with 1:45 remaining, San Antonio closed within two points as Aldridge scored five consecutive points on a layup and a powerful dunk that led to a three-point play. After Leonard missed a short runner, McCollum made a pair of free throws to end the Spurs' streak and give Portland a 106-102 lead.
Patty Mills then hit a 3-pointer from the right corner off a feed from Leonard, but Lillard made four straight free throws to seal the victory for the Trail Blazers.
Aldridge finished 9 for 24 from the field and played 32 minutes. He made his first two attempts, a 17-foot jumper and a 21-footer, drawing loud cheers from the sold-out crowd.
San Antonio raced to a 14-7 lead, but Portland went on an 11-2 run to quiet the crowd and keep the game within seven points throughout.
Leonard finished 12 for 21 from the field, including consecutive dunks, in scoring 30-plus points for the 25th time this season. The 6-foot-7 forward first sprinted in from the free-throw line for a one-handed stuff against Noah Vonleh and then spun under the basket for a dunk against the 7-foot Jusuf Nurkic.
Portland closed the third quarter on a 9-3 run in taking an 82-80 lead to set up their fourth-quarter heroics.
Trail Blazers: Lillard has scored 30 points in six of 11 games since returning from the All-Star break. ... Portland was without F Ed Davis (left shoulder), C Festus Ezeli (left knee) and F Evan Turner (right hand). ... Nurkic had 16 points after scoring just two against New Orleans on Tuesday. ... The Blazers improved to 7-4 when Lillard, McCollum, Vonleh and Nurkic and Maurice Harkless start. ... Portland is 80-83 against San Antonio overall after snapping a five-game skid against the Spurs.
Spurs: Aldridge has scored 1,000 points for a 10th straight season, joining LeBron James and Dwyane Wade as the only active players with that streak. ... G Tony Parker missed his fourth straight game with back stiffness. The 34-year-old has missed 16 games this season after sitting out 10 games last year. ... Leonard has scored in double figures in 94 straight games dating to Jan. 14, 2016.
Trail Blazers: At Atlanta on Saturday night.
Spurs: At Memphis on Saturday night.