Duncan blocked Tristan Thompson's layup attempt with the Spurs leading 113-109 and 54.9 seconds remaining. Duncan also blocked Waiters' shot with 17.9 seconds left and San Antonio leading 116-111.
It was two of the few defensive highlights for the Spurs.
"It's not been great and I don't know why," Duncan said. "I think the effort is there. We're playing hard. We're giving up too many straight drives right to the rim. We've got find a way to kind of counter that; find a way to clean that up."
Duncan had 13 points in the first quarter, going 6 for 9 and collecting six rebounds.
He tossed in a 2-foot jumper that gave the Spurs a 30-21 lead with 3 minutes left in the first quarter. Leonard picked up an assist on the basket, hustling in from out of bounds to tip his own missed shot to Duncan.
"We're moving the ball and it's gone to the post a little more," Duncan said. "That's where I'm a little more effective. I still haven't gotten my shot back the way I want it. I'm just trying to be aggressive."
Waiters' 3 with 7 minutes left in the first half capped a 13-5 run that gave the Cavaliers a 48-44 lead.
After CJ Miles made both free throws on Popovich's technicals, the Spurs closed the first half on a 22-11 run to take a 66-61 lead. Ginobili had eight points in the run and Duncan added seven.
Cleveland shot 61 percent from the field in the first half.
"I think they're the best team in the league," Cavaliers coach Byron Scott said. "I don't know if they're going to win it. They have the best talent and the best coach, so they have a great shot of winning another championship. I think for us, we played this game really well."
The Spurs never trailed in the third quarter, but Livingston's layup with 1:20 left tied the game at 90 to set up the fourth quarter.
NOTES: Varejao, who missed his 41st game, will not return after being diagnosed with a blood clot in his lung. . Splitter is the only player to appear in every game for San Antonio this season, having started 45 of 67 games. . The Spurs continue to use their D-League affiliate to develop their young reserves, sending De Colo and Aron Baynes to the Austin Toros on Friday. De Colo was recalled prior to Saturday's game, playing 24 minutes while going 4 for 6 from the field. . San Antonio is 34-6 overall at home against Cleveland. . Ellington (ankle) played 22 minutes after being listed as a game-time decision.