P.J. Hairston added 14 points, including a 3-pointer with 90 seconds remaining in overtime that put the Hornets ahead to stay.
DeMar DeRozan scored 31 points, Kyle Lowry added 20 and Terrence Ross had 17 for Toronto. Bismack Biyombo, who spent four seasons with Charlotte, had a career-best 18 rebounds while also blocking seven shots and scoring eight points.
The Raptors rallied back from a 16-point deficit late in the third quarter.
The Hornets led 72-56 on Lin’s layup with 4:14 left in the third period. The Raptors came back, eventually tying it at 90 on DeRozan’s jumper with 26 seconds remaining.
Toronto took its only lead of the game on Lowry’s layup 15 seconds into overtime. After two ties, Hairston hit his 3. The Hornets closed out the game by outscoring the Raptors 10-3 over the final 67 seconds, going 8 of 8 from the free throw line.
Behind Lin’s 18 first-half points, Charlotte pulled ahead of Toronto early, leading by as many as 13 points and taking a 56-44 margin at the break.
The Hornets shot 50 percent from the field (22 of 44) over the first two quarters, and made 7 of 18 3-pointers. Meanwhile, the Raptors made just 16 of 41 (39 percent) and only 3 of 15 3-pointers.
Raptors: Toronto was whistled for two technical fouls – on Biyombo in the second quarter, and Lowry in the third.
Hornets: Lin made just his second start of the season in place of guard Nicolas Batum, who was out with an undisclosed illness. . Center Al Jefferson began a five-game suspension for violating the league’s drug policy. Jefferson had missed the previous six games with a strained calf muscle.