The dramatic victory ensured the seven-time world champion slashed his Red Bull rival’s championship lead to just 14 points, throwing the title race wide open.
Hamitlon, who has now won six races this season, had started the race back in 10th after a series of time penalties but worked his way through the grid before racing Verstappen wheel to wheel.
The pair have had memorable battles in the past and Sunday produced another controversial flashpoint with the pair running wide on lap 48.
Mercedes complained Verstappen had pushed Hamilton wide unfairly but race stewards took no further action.
“I don’t remember another weekend like this. It’s quite overwhelming, to be honest,” Hamilton said after the race.
“This has been probably one of the best weekends, if not the best weekend, that I have experienced.”
‘One of the best drives I’ve ever seen’
It was a rollercoaster few days for Hamilton who had qualified fastest for Saturday’s sprint race which set Sunday’s grid.
However, he started from the back of the field on Saturday after his car failed a technical inspection.
The 36-year-old Briton then made his way back to qualify fifth before being knocked back down again to 10th on the grid after an engine penalty.
Hamilton, who said he was boosted by the support in Brazil, was unfazed and kept his dreams of an eighth world title alive.
“That was one of the best drives I’ve ever seen in F1. By anyone. Utterly awesome,” tweeted 1996 world champion Damon Hill.
Just three races remain in this year’s championship with Verstappen still ahead in the standings.
Despite being overtaken by his fierce rival, the Dutchman still said he had fun in what was an enthralling weekend of action.
“It was a good battle but at the end we just missed a little bit of pace. We gave it our all today, it was a lot of fun,” Verstappen said.
“We still have a good points lead. Today was a bit of damage limitation on a weekend that was difficult for us. I’m confident that the coming races we will bounce back.”