DeRozan missed a wild layup with 19 seconds left, and James' 20-footer at the buzzer bounced off the back iron — sending it to overtime.
"We've been competing against everybody," Calderon said. "We're playing much better. We're sharing the ball. We can compete against everybody. We've got to compete every night. We've still got a couple guys out with injuries, but we'll be all right. When we play as a team, we're good. We don't have LeBron James."
Toronto led 54-39 late in the second after a 19-9 run. Kyle Lowry had seven points during the burst, Anderson added six — and both made four-point plays during the stretch.
But Miami closed to 57-50 by intermission, after a heads-up final few seconds from Shane Battier.
He made a 3-pointer late in the half, then stole Toronto's inbounds pass to give Miami a possession that led to a free throw by Bosh. Battier then contested Lowry's layup at the buzzer, forcing a miss before the break.
Toronto led by as many as 10 in the third, before the Heat got hot. Miami scored 30 points in the final 7:55 of the quarter — with Wade going 6 for 7 in the period, and the Heat outrebounding Toronto 13-3.
Still, it only added up to an 88-84 Heat lead entering the fourth.
"The biggest thing is winning," James said. "That's what it's all about."
NOTES: James passed Tom Chambers for 37th on the league's career scoring list. ... James had 10 points in the first quarter, the fifth straight game where the NBA's reigning MVP has reached double-digits in the opening period. It's the third time he's had such a streak in his career, with a run of six consecutive games in 2010 his longest. ... Toronto had no turnovers in the game's first 22 minutes. ... One of the loudest cheers in the first half came when the halftime score of the Miami-Duke game — the Hurricanes led 42-19 in a stunner at that point, in a game going on a few miles south in Coral Gables — was displayed on the scoreboards. Miami went on to a 90-63 victory.