Romain Grosjean topped GP2 free practice at Monaco by more than one second over the rest of the field.
The DAMS driver was the pacesetter for most of the session, as he was one of the few drivers to get a series of clear laps in.
Grosjean was already out front by the halfway stage, and with seven minutes remaining he found another half a second to put himself 0.8 seconds clear of Racing Engineering's Dani Clos at that time.
As the session came to a close Grosjean put in another hot lap, where he was able to stretch his margin over the Spaniard to 1.1 seconds as the chequered flag fell.
Clos was followed up by the spectacular Stefano Coletti (Trident) and Luca Filippi (Super Nova), who both looked close to the edge on their best laps. Filippi's pressing eventually caught him out, as he spun at Massenet with three minutes to go, bringing his session to a premature end.
Davide Valsecchi was fifth fastest, but he was another to hit trouble. The AirAsia driver lost his rear wing when he spun on the entry to the final corner, hitting the barriers on the outside.
Jules Bianchi was next up for ART, while late improvements from Johnny Cecotto, Esteban Gutierrez and Max Chilton bumped Giedo van der Garde down to 10th.
Traffic was a problem for drivers throughout the 30-minute session, as they all constantly backed up looking for clear track.
Barcelona race winner Charles Pic was involved in the most serious moment, when Luiz Razia drove into the back of the Frenchman, who was going slowly in the swimming pool section of the lap.
The other race winner from Spain, Fabio Leimer, had several hot laps ruined. He set the fastest time through the first sector on multiple occasions, but never got a clear lap on his way to 12th place. The Swiss then spun at Mirabeau four minutes from the end.
Pos Driver Team Time Laps
1. Romain Grosjean Dams 1:22.368 16
2. Dani Clos Racing Engineering 1:23.509 12
3. Stefano Coletti Trident Racing 1:23.547 16
4. Luca Filippi 1Super Nova Racing 1:23.643 13
5. Davide Valsecchi Team AirAsia 1:23.681 16
6. Jules Bianchi Lotus ART 1:23.707 17
7. Johnny Cecotto Ocean Racing Technology 1:23.804 17
8. Esteban Gutierrez Lotus ART 1:23.931 16
9. Max Chilton Carlin 1:23.985 17
10. Giedo van der Garde Barwa Addax Team 1:24.040 14
11. Josef Kral Arden International 1:24.447 16
12. Fabio Leimer Rapax 1:24.491 17
13. Sam Bird iSport International 1:24.566 18
14. Luiz Razia Team AirAsia 1:24.817 18
15. Rodolfo Gonzalez Trident Racing 1:24.976 16
16. Marcus Ericsson iSport International 1:25.019 16
17. Alvaro Parente Racing Engineering 1:25.092 13
18. Fairuz Fauzy Super Nova Racing 1:25.316 17
19. Oliver Turvey Carlin 1:25.500 15
20. Charles Pic Barwa Addax Team 1:25.782 17
21. Julian Leal Rapax 1:26.141 16
22. Michael Herck Scuderia Coloni 1:26.924 18
23. Jolyon Palmer Arden International 1:26.990 11
24. Pal Varhaug Dams 1:27.888 17
25. Kevin Mirocha Ocean Racing Technology 1:28.242 18
26. Kevin Ceccon Scuderia Coloni 1:29.125 16