A late red flag, produced by Dan Ticktum, gave Avalanche Andretti's Dennis enough opportunity to displace Nyck de Vries from the top of the timing boards - and keep the accolade of fastest time away from a late siege.
Robin Frijns was top after the first flurry of representative lap times, before being shaded by Rowland as the two settled into the 1m15s.
Mitch Evans then brought the times into the 1m14s, preceding a flurry of drivers all contending for top spot - before Dennis fired in a 1m14.270s to sit on top of the times.
Teammate de Vries quickly shuffled Vandoorne down a spot, however, by logging a 1m13.767s to go top - which remained largely unchallenged for a spell.
Maximilian Gunther got closest, sticking his Nissan e.dams between the two Mercedes on the timing board with a 1m13.860s, before a red flag paused the session in the final 10 minutes - with NIO 333's Ticktum going off at Turn 6 and requiring roadside assistance to collect his car.
The session resumed with three minutes remaining, with multiple drivers using it as an opportunity to simulate qualifying with an out-lap followed by a full-power run.
De Vries' time was initially safe from an Evans threat, but Dennis fired in a late 1m13.661s to overhaul the Dutchman's control over the session and claim top spot.
Andre Lotterer looked good to challenge Dennis, but fell short at the line and could only take second, which became third as Rowland's late effort was a scant 0.007s faster.
Lucas di Grassi was fifth behind de Vries, as Evans' time was enough to beat Gunther to seventh.
Championship leader Vandoorne dropped to eighth, ahead of Sette Camara in ninth as the Dragon Penske driver looked impressive, while Oliver Askew made it both Andretti's in the top 10.
Sette Camara had headed the opening free practice session on Friday afternoon, a 1m14.487s set within the final five minutes of the session to depose Mitch Evans from the top.
London E-Prix: Full practice results