Jolyon Palmer started the GP2 season in the best possible manner by setting pole position for the Bahrain opener, although McLaren junior driver Stoffel Vandoorne ran him close.
DAMS driver Palmer lapped the Sakhir track in 1m38.865s, just 0.03s quicker than ART Grand Prix's Vandoorne after a thrilling qualifying session.
The top spot changed hands a number of times between a succession of drivers, but Palmer delivered the lap time when it mattered most after a brief red flag interruption to retrieve Artem Markelov's spun car.
The key to Palmer's pole was his fastest middle sector of the lap, as he gave away a tenth to Vandoorne in the final element. The result was Palmer's second pole in GP2.
Daniel Abt will start third for Hilmer, having topped the times after the first runs on fresh tyres. He was a fifth of a second down on Palmer's time at the end, and just 0.008s faster than fourth-placed qualifier Stephane Richelmi in the second DAMS car.
Rio Haryanto qualified fifth for Caterham, ahead of Racing Engineering's Stefano Coletti.
Mitch Evans, who set the pace early on, slipped down the order to seventh, just ahead of Williams F1 tester Felipe Nasr, who was involved in a turf war with category veteran Johnny Cecotto Jr on the final lap.
Ferrari protege Raffaele Marciello will start his maiden GP2 race from ninth, ahead of fellow rookie Arthur Pic, who impressed on Campos Racing's return.
Of the other contenders expected to shine, Jon Lancaster qualified outside the top 10 in 11th, and Alexander Rossi slumped to 15th after a bright start for Caterham.
Pos Driver Team Time Gap Laps
1. Jolyon Palmer DAMS 1m38.865s 10
2. Stoffel Vandoorne ART 1m38.895s +0.030s 10
3. Daniel Abt Hilmer 1m39.073s +0.208s 10
4. Stephane Richelmi DAMS 1m39.081s +0.216s 10
5. Rio Haryanto Caterham 1m39.228s +0.363s 11
6. Stefano Coletti Racing Engineering 1m39.271s +0.406s 11
7. Mitch Evans Russian Time 1m39.274s +0.409s 9
8. Felipe Nasr Carlin 1m39.301s +0.436s 10
9. Raffaele Marciello Racing Engineering 1m39.449s +0.584s 10
10. Arthur Pic Campos 1m39.462s +0.597s 10
11. Jon Lancaster MP 1m39.507s +0.642s 10
12. Julian Leal Carlin 1m39.588s +0.723s 12
13. Johnny Cecotto Trident 1m39.615s +0.750s 10
14. Andre Negrao Arden 1m39.647s +0.782s 10
15. Alexander Rossi Caterham 1m39.651s +0.786s 10
16. Kimiya Sato Campos 1m39.749s +0.884s 11
17. Rene Binder Arden 1m39.788s +0.923s 9
18. Conor Daly Lazarus 1m39.848s +0.983s 10
19. Facu Regalia Hilmer 1m39.881s +1.016s 12
20. Nathanael Berthon Lazarus 1m39.928s +1.063s 8
21. Simon Trummer Rapax 1m40.059s +1.194s 11
22. Daniiel De Jong MP 1m40.060s +1.195s 10
23. Takuya Izawa ART 1m40.401s +1.536s 11
24. Adrian Quaife-Hobbs Rapax 1m40.408s +1.543s 10
25. Axcil Jefferies Trident 1m40.619s +1.754s 11
26. Artem Markelov Russian Time 1m41.172s +2.307s 5