Australian Mark Webber [ Images ] finished runner-up for Red Bull, taking the chequered flag 6.7 seconds behind the Briton to equal his best ever finish, with 21-year-old German team mate Sebastian Vettel [ Images ] third after starting on pole position.
Button stretched his championship lead over Brazilian team mate Rubens Barrichello [ Images ], who failed to finish after a starting glitch left him fighting way down the field, to 26 points with 10 races remaining.
The Briton has 61 points, Barrichello 35 and Vettel 29.
"You have built me a monster of a car, you guys are absolute legends," Button yelled over the team radio, his voice wavering with the emotion, after the white and lime car crossed the finish line.
Button's seventh career win, and fourth in a row, made him the first driver to win in Turkey without starting on pole position since the race made its debut at the Istanbul Park circuit in 2005.
"Today the car was the best it felt all year. Today it was immense, it really was," added Button. "I wish I could have had all the guys up on the podium with me."
Vettel, who made three stops to Webber's two but failed to make the strategy work for him, made a mistake when he hit the kerb into turn nine and went wide at turn 10 on the opening lap, allowing Button to slip past.
Vettel said he had been well beaten: "Jenson was just too quick today, I don't think I would have held him anyway," he said.
In what is shaping up to be the most dominant season by a driver since the championship started in 1950, 29-year-old Button also became the first Briton to win four successive races in a single year since Nigel Mansell in 1992.
Only five other British drivers, all of them champions, have won six times in a season and that tally does not include current champion Lewis Hamilton [ Images ].
The 24-year-old McLaren [ Images ] driver, wrestling with an uncompetitive car, finished 13th -- 80.4 seconds behind Button -- unlapped but still out of the points for the third race in succession.
Massa was sixth while Poland's Robert Kubica [ Images ], a title challenger last season, scored his first points of the year for BMW-Sauber in seventh place.
Germany's Timo Glock [ Images ] took the final point for Toyota.
On a brilliantly sunny afternoon at Istanbul Park, with temperatures in the 30s Celsius, the race was short on incident with only Barrichello and Force India's [ Images ] Italian Giancarlo Fisichella [ Images ] retiring.
The biggest disappointment was the lack of spectators with fans easily outnumbered by the empty seats.