For the ninth year in a row, victory at the Circuit de Catalunya went to the driver starting from pole position with Button taking the chequered flag 13.0 seconds ahead of Brazilian team mate Rubens Barrichello [ Images ].
Brazilian Massa, who led for a lap after the first pit stops, had to slow in the closing laps to save fuel with the team warning him that he risked not making it to the finish.
The three points were still the first of the season for last year's overall runner-up.
Button, now with five career wins to his credit, was overtaken at the start by Barrichello but forced himself back in front of the Brazilian with an astute strategy shift from three stops to two.
The Briton is now 14 points clear of his 36-year-old team mate, who had been tantalisingly close to his first win since he was Michael Schumacher's [ Images ] team mate at Ferrari in 2004.
Ferrari's 2007 champion Kimi Raikkonen [ Images ], last year's winner in Barcelona [ Images ], retired after less than a third of the race while McLaren's [ Images ] world champion Lewis Hamilton [ Images ] was ninth and lapped by his winning compatriot.
The safety car was deployed for four laps after a pile-up involving Toyota's [ Images ] Jarno Trulli [ Images ], both Toro Rosso drivers and Force India's [ Images ] Adrian Sutil [ Images ] as the field powered through the second corner.