Sam Bird withstood race-long pressure and a last-lap attack from Jules Bianchi to take victory in the Formula Renault 3.5 race in Monaco.
The two former GP2 racers were in a class of their own around the streets of the Principality, finishing 36 seconds clear of Alexander Rossi in third.
Arden driver Rossi had started alongside ISR's Bird on the front row, but he lost a place off the line to Bianchi (Tech 1). From there, the two leaders stormed away from the field, trading fastest laps all the way through to the end.
Bird's lead was more than two seconds with around 10 laps to go after the pair had negotiated some backmarkers, but Bianchi charged back towards him and got the gap down to an all-time low of 0.4s with three laps remaining.
But the leader did not put a wheel wrong all race. Bianchi tried a lunge at the chicane on the final lap after getting close through the tunnel, but he aborted the move at the last moment and narrowly avoided his former GP2 team-mate before clattering over the kerbs.
Rossi spent the second half of his race keeping the second Tech 1 car of Kevin Korjus at bay, after the Estonian had been promoted to fourth when Fortec's Robin Frijns stopped at the chicane. The Dutchman's retirement means Bird now leads the championship.
GP3 graduate Nico Muller (Draco) kept his nose clean to take fifth ahead of Marco Sorenson (Lotus), who heaped pressure on the Swiss driver in the closing laps.
Behind them, Nick Yelloly (Comtec), Mikhail Aleshin (RFR) and Walter Grubmuller (P1) were next up, while Fortec's Carlos Huertas inherited the final point in 10th when Lotus driver Richie Stanaway crashed at the Swimming Pool on lap 19.
Kevin Magnussen was another frontrunner to hit trouble. The Carlin driver, who started fourth, only made it as far as the first corner before his race ended in the barriers after slight contact with Frijns.
Results - 33 laps:
Pos Driver Team Time/Gap
1. Sam Bird ISR 46m16.823s
2. Jules Bianchi Tech 1 + 2.689s
3. Alexander Rossi Arden + 36.611s
4. Kevin Korjus Tech 1 + 37.607s
5. Nico Muller Draco + 41.366s
6. Marco Sorensen Lotus + 44.694s
7. Nick Yelloly Comtec + 57.405s
8. Mikhail Aleshin RFR + 58.837s
9. Walter Grubmuller P1 + 1m00.410s
10. Carlos Huertas Fortec + 1m02.734s
11. Arthur Pic DAMS + 1m11.708s
12. Will Stevens Carlin + 1m25.350s
13. Lewis Williamson Arden + 1 lap
14. Zoel Amberg Pons + 1 lap
15. Daniil Move P1 + 1 lap
16. Vittorio Ghirelli Comtec + 1 lap
17. Lucas Foresti DAMS + 2 laps
18. Nikolay Martsenko BVM Target + 2 laps
Yann Cunha Pons 23 laps
Anton Nebylitskiy RFR 20 laps
Giovanni Venturini BVM Target 19 laps
Richie Stanaway Lotus 18 laps
Robin Frijns Fortec 8 laps
Jake Rosenzweig ISR 6 laps
Andre Negrao Draco 4 laps
Kevin Magnussen Carlin 0 laps