Boston blew a 20-point lead, but Thomas keyed a third-quarter run that put the Celtics back on top after Chicago briefly went ahead.
Gerald Green made four three-pointers on his way to 18 points, helping the top-seeded Celtics return the favor in Chicago after dropping the first two games at home. Al Horford added 15 points and 12 rebounds.
Game 5 is Wednesday in Boston.
Canaan made his first appearance since April 10, with Bulls coach Fred Hoiberg searching for help at point guard with Rajon Rondo missing his second straight game because of a broken right thumb.
The Celtics led by 20 in the second quarter and were still up 10 in the third when Chicago scored 12 straight. The Bulls went ahead 65-63 on Robin Lopez's hook shot with 4:35 left in the quarter.
Thomas answered with back-to-back layups and scored 10 points in a 12-0 run that gave the Celtics a 75-65 lead, and they withstood a push by the Bulls early in the fourth.
With Thomas and Green each scoring 16 in the first half, the Celtics carried a 57-46 lead into the break.
Butler led the Bulls with 17 in the half. But the offense struggled in a big way with Rondo unavailable. Jerian Grant started and went to the bench after about five ineffective minutes. Michael Carter-Williams then picked up two quick fouls, forcing the Bulls to go with Canaan in the first quarter.
The Celtics, meanwhile, led 41-21 early in the second quarter. But things started to turn after Canaan stole the ball from Marcus Smart and scored on a layup.
Smart feigned throwing the ball at Butler. The two came nose to nose, resulting in technical fouls for both players, and the Bulls started to shoot their way back into it.
Mirotic hit a pair of three-pointers and scored eight in the quarter. Bobby Portis cut it to 52-42 with his basket late in the half, and Butler hit two free throws with 22.6 seconds left to make it 57-46.
The NBA fined Rondo for attempting to trip Boston Celtics forward Jae Crowder from the bench in Game 3. Crowder jawed at the Bulls' bench after hitting a jumper and Rondo extended his leg as Crowder walked by.