Valtteri Bottas of Williams was a distant third, with Romain Grosjean taking a superb fourth for Lotus. The Frenchman, however, will drop five grid places, courtesy a gearbox change penalty.
Perez secured a season-best fifth for Force India, ahead of Red Bull's Daniel Ricciardo, Felipe Massa in the second Williams, and Pastor Maldonado in the second Lotus.
Ferrai's Sebastian Vettel was ninth in with Toro Roso's Carlos Sainz rounding out a tightly-packed top 10.