TORONTO — San Antonio's worst shooting performance of the season kept Spurs coach Gregg Popovich waiting for his 1,000th career win.
James Johnson scored a season-high 20 points in his return to the starting lineup, DeMar DeRozan had 18 and the Toronto Raptors beat San Antonio 87-82 Sunday night.
The Spurs shot 31 for 93 (.333), surpassing their previous low of .344 in a 98-81 defeat at Houston on Nov. 6.
"Poor execution and a bad night," said Manu Ginobili, who went 3 for 13. "A bad combination."
Amir Johnson added 15 points, Kyle Lowry 12 and Jonas Valanciunas had a season-high 16 rebounds as Toronto improved to 8-2 at home against Western Conference opponents. The Raptors snapped a seven-game losing streak against the Spurs and won for the first time in five home meetings.
"To hold a team like that to their season low is admirable," Raptors coach Dwane Casey said. "It shows how we have to play at grind it out."
Toronto, which rallied from a 20-point deficit to beat the Clippers on Friday, has won two straight after losses to Milwaukee and Brooklyn.
"We set the bar high and we've got to keep going to that standard," James Johnson said.
Tim Duncan and Marco Belinelli each scored 12 points, Kawhi Leonard had 11 and Tony Parker 10 for the Spurs, who had won nine of 11 coming in but couldn't get Popovich his milestone win.
"We're not trying to win for one person or another, we're trying to better our team and end strong (before the All-Star break)," a frustrated Duncan said.
Parker's 3 tied it at 75-all at 5:02, and Duncan made a pair of free throws at 3:40 to give San Antonio its first lead of the fourth quarter.
Lowry tied it again with a fadeaway jumper but Belinelli's 3 at 2:20 restored San Antonio's advantage.
James Johnson scored a layup, Parker answered with a hook shot but Amir Johnson's dunk at 1:33 cut it to 82-81.
After the Spurs turned it over on a shot-clock violation, James Johnson hit a 3 with 49 seconds left, putting Toronto up 84-82.
Manu Ginobili and Belinelli both missed 3s and James Johnson was fouled as he grabbed the rebound on Lowry's miss at the other end, making one of two with 4 seconds remaining.
After a Toronto foul, Duncan turned the ball over on the resulting inbounds pass, giving the Raptors possession with 4 seconds left. DeRozan was fouled and sealed the win with a pair at the line.
Ginobili said he and Leonard "got clogged at the top of the key" while trying to get open for Duncan's pass.
"Just a bad read on my part," Duncan said of the costly turnover. "It's my responsibility to make sure that they're open and the ball goes where it needs to go. I just read it wrong."
San Antonio missed 12 of its first 15 field-goal attempts in the first but Ginobili hit a buzzer-beating 3 to keep the Spurs close, with Toronto leading 28-25 after one.
Toronto called two timeouts in the first 6 minutes of the second as San Antonio started the quarter with a 15-5 run to take a 40-33 lead. The Raptors scored the final eight points of the half, pulling to 46-45.
James Johnson opened the second half with a slam dunk to give Toronto the lead, San Antonio answered with a 9-0 run but the Raptors reclaimed the lead with a 10-0 spurt led by four points each from Johnson and Valanciunas. The Spurs went scoreless for almost 6 minutes before Boris Diaw stopped the drought with a free throw.
"They were good," Ginobili said. "I guess we helped them. We were not sharp."
Valanciunas had six points and eight rebounds in the third to help Toronto take a 64-58 lead into the fourth.
Popovich had fond words for legendary college coach Dean Smith, who died Sunday at the age of 83. Smith was a former assistant coach at the Air Force Academy, where Popovich later captained the team. "He was a wonderful man," Popovich said. "He was very important to me at the beginning of my career, he was really gracious to me. He was an iconic figure in the game but he was a wonderful human being to a lot of people."
Spurs: San Antonio's starters shot a combined 7 for 29 in the first half. ... The Spurs made four of their first six shots in the third, then missed 16 of their final 17. "That was a bad stretch for us," Popovich said. ... San Antonio had a season-high 20 offensive rebounds. ... This was the first of nine straight road games for the Spurs, who won't play at home again until March 4 because of the annual San Antonio Rodeo.
Raptors: James Johnson started in place of Greivis Vasquez, his eighth start of the season and his first since Jan. 12. ... Valanciunas had four blocks, one shy of his career-high.
Clippers: At Indiana on Monday night.
Raptors: Host Washington on Wednesday night.