Di Resta's penalty for being underweight brings Daniel Ricciardo's Toro Rosso into the top five. Force India still has a car on row three, as Adrian Sutil is elevated to sixth.
Caterham driver Giedo van der Garde was set to start last as he had a 10-place penalty for colliding with Nico Hulkenberg while being lapped in Canada.
But di Resta's issue cancels out that punishment, as it brings van der Garde back up to 21st, which was where he had originally qualified.
Mercedes duo Lewis Hamilton and Nico Rosberg share the front row, followed by the Red Bulls of Sebastian Vettel and Mark Webber.