The Blazers hit four straight 3-pointers to tie it at 109 with 40.5 seconds left, but Portland stumbled from there and was saddled with its third consecutive loss. Nicolas Batum had a career-high 33 points.
Tim Duncan added 22 points and nine rebounds for the Spurs, who snapped a seven-game losing streak at the Rose Garden.
San Antonio played without Tony Parker because of a flu bug that has been making its way around the team. Patty Mills started in his place.
The Spurs trailed by as many as 14 points in the third quarter but opened the final period with a 14-0 run to go up 87-79.
Rookie Damian Lillard and Batum each hit a 3-pointer to trim Portland's deficit to 105-103 with 1:57 to go. Duncan dunked before Wesley Matthews made a 3-pointer to get the Blazers within one with 1:28 left.
Duncan made a layup, but Batum answered with another 3. Ginobili made a pair of foul shots with 12.9 seconds left to get the lead back to the Spurs, and Stephen Jackson went 1 for 2 at the line with 4.4 seconds to go.
Portland star LaMarcus Aldridge missed a desperation 3-pointer at the buzzer.
Parker and Duncan weren't feeling well but both played in San Antonio's 97-86 victory over Sacramento on Friday night. Jackson missed that game because of the virus, but returned to face the Blazers.
After playing only sparingly in San Antonio's first five games, Mills had 18 points in just over 21 minutes against the Kings. Mills spent two seasons in Portland, which selected him with the 55th overall pick of the 2009 draft.
The Blazers went up 17-10 midway through the opening quarter after Batum's 3-pointer.
Rookie Meyers Leonard's tip-in extended the lead to 26-16, but the Spurs answered with consecutive 3-pointers by Jackson, Ginobili and Neal. Ginobili then made a free throw to tie it at 26.
Lillard, the sixth overall pick in the June draft, took over at the start of the second quarter, scoring eight points in a 10-4 run that put Portland up 42-32. Lillard had a fast-break dunk off a steal and two 3-pointers.
Lillard finished the half with a pull-up jumper to give the Blazers a 52-43 lead at the break.
The Blazers got a scare in the second half when Matthews fell awkwardly under the basket. He was face down on the floor for a while before heading to the locker room. A short time later he returned to the bench, apparently unhurt.
The Spurs kept pressure on the Blazers, closing to 67-64 on Neal's pull-up jumper. Part of the problem for Portland was its reserves, who managed just four points.
Matthews' putback made it 79-71, but Ginobili answered with a quick 10-foot jumper and the Blazers carried a 79-73 lead into the final quarter.
NOTES: Some of the players, including Aldridge and San Antonio's Boris Diaw, sported special red, white and blue headbands to honor armed forces veterans.