2012 bestritt Button eine weitere Formel-1-Saison als Teamkollege von Hamilton. Den Saisonauftakt in Australien führte er über weite Strecken an und erzielte den Sieg. Beim Großen Preis von Malaysia wurde Button durch eine Kollision nach hinten durchgereicht und kam außerhalb der Punkteränge auf dem 14. Platz ins Ziel. Ein Rennen später in China erreichte er den zweiten Platz. Durch einen fehlerhaften Boxenstopp besaß er in der Schlussphase keine Siegchancen mehr. Beim vierten Rennen in Bahrain war Button auf Punktekurs, bevor mit einem Reifenschaden zurückfiel und schließlich mit einem technischen Problem ausfiel. Zur Saisonmitte in Deutschland erzielte Button mit einem zweiten Platz eine weitere Podest-Platzierung. Zwei Rennen später in Belgien folgte sein zweiter Saisonsieg von der Pole-Position startend. Es war seine erste Pole-Position für McLaren. Beim letzten Grand Prix in Brasilien entschied Button das Rennen für sich. Am Saisonende belegte er den fünften Gesamtrang. Mit 188 zu 190 Punkten unterlag er knapp Hamilton.