Thompson scored 16 of his 25 points in the fourth quarter. Stephen Curry finished with 19 points for the Warriors, who have won five of six. It was their first win at Indiana in seven years.
David West led the Pacers with 27 points and Paul George added 26 as Indiana's five-game winning streak ended.
The Warriors were in control most of the night, taking the lead at 10-8 and holding it until midway through the third quarter. They regained control with a 7-0 run late in the third and led 92-79 with 6:23 to play.
But the Pacers tied the score at 94 with a 12-0 run.
After Thompson put Golden State ahead again, George's long 3-pointer at the buzzer was short. George fell into the scorers' table, but no foul was called and the Pacers didn't complain.
It was an uncharacteristic night for the usually stout Pacers defense, especially at home, where they are now 29-4.
Golden State shot 44 percent from the field and made 10 of 20 3-pointers against a defense ranked No. 3 in the NBA defending the arc.
But the Warriors made their first four shots in the fourth quarter, then got a layup from Thompson, a 3-pointer from Harrison Barnes and another 3 from Thompson to take the 13-point lead with 6:23 to go.
At that point, it appeared the Pacers were finished.
But down 94-82, they charged back. West hit a 15-footer, Roy Hibbert made a 19-footer and when West converted a turnover into a breakaway dunk it was suddenly 94-88.
The Pacers were just warming up.
Hibbert hit an 18-footer, George knocked down a long jumper and then made two free throws to tie the score at 94 with 2:13 to go.
David Lee gave the lead back to Golden State on a layup, and George tied it again at 96 with two free throws with 1:06 to play.
Golden State's previous victory in Indianapolis was Feb. 5, 2007.