Red Bull junior driver Antonio Felix da Costa set the fastest time in Formula Renault 3.5 practice at the Moscow Raceway on Friday.
The Portuguese racer's afternoon effort of 1m21.097s eclipsed championship leader Kevin Magnussen's morning best by 0.217 seconds.
Magnussen's DAMS team-mate Norman Nato took second position in both one-hour sessions, and was shaded by da Costa by just 0.048s in the afternoon.
Tyres played a big role at the Russian track, as several drivers reported that they struggled to extract a second fast lap time on new rubber.
The second session was extremely closely contested with one second covering the first 23 cars.
Marlon Stockinger was buoyed by a solid fourth in the afternoon, ahead of Will Stevens and Spa hard charger Nigel Melker.
In a field with four Russians in it, the top local hope was teenage Auto GP graduate Sergey Sirotkin in seventh in the second session.
Behind him, Oliver Webb slipped to eighth after holding the fastest time for a long period.
Webb's Fortec team-mate Stoffel Vandoorne, Magnussen's closest rival in the title race, ended the morning session in fourth before dropping to 15th in the afternoon.
Series debutant Will Buller was 0.742s off da Costa's afternoon pace in 20th for Zeta Corse.
Pos Driver Team Time Gap
1. Kevin Magnussen DAMS 1m21.314s
2. Norman Nato DAMS 1m21.870s +0.556s
3. Antonio Felix da Costa Arden Caterham 1m21.877s +0.563s
4. Stoffel Vandoorne Fortec 1m21.990s +0.676s
5. Mikhail Aleshin Tech 1 1m22.138s +0.824s
6. Zoel Amberg Pons 1m22.264s +0.950s
7. Andre Negrao Draco 1m22.298s +0.984s
8. Marco Sorensen Lotus 1m22.316s +1.002s
9. Nigel Melker Tech 1 1m22.330s +1.016s
10. Jazeman Jaafar Carlin 1m22.373s +1.059s
11. Arthur Pic AV 1m22.526s +1.212s
12. Sergey Sirotkin ISR 1m22.529s +1.215s
13. Nico Muller Draco 1m22.564s +1.250s
14. Will Stevens P1/Strakka 1m22.711s +1.397s
15. Marlon Stockinger Lotus 1m22.810s +1.496s
16. Lucas Foresti SMP/Comtec 1m22.871s +1.557s
17. Carlos Huertas Carlin 1m22.915s +1.601s
18. Oliver Webb Fortec 1m22.961s +1.647s
19. Matias Laine P1/Strakka 1m23.030s +1.716s
20. Pietro Fantin Arden Caterham 1m23.107s +1.793s
21. Nikolay Martsenko Pons 1m23.120s +1.806s
22. Christopher Zanella ISR 1m23.203s +1.889s
23. Daniil Move SMP/Comtec 1m23.339s +2.025s
24. Yann Cunha AV 1m23.616s +2.302s
25. Will Buller Zeta 1m23.658s +2.344s
26. Mihai Marinescu Zeta 1m24.082s +2.768s
Pos Driver Team Time Gap
1. Antonio Felix da Costa Arden Caterham 1m21.097s
2. Norman Nato DAMS 1m21.145s +0.048s
3. Kevin Magnussen DAMS 1m21.168s +0.071s
4. Marlon Stockinger Lotus 1m21.241s +0.144s
5. Will Stevens P1/Strakka 1m21.325s +0.228s
6. Nigel Melker Tech 1 1m21.336s +0.239s
7. Sergey Sirotkin ISR 1m21.353s +0.256s
8. Oliver Webb Fortec 1m21.374s +0.277s
9. Marco Sorensen Lotus 1m21.405s +0.308s
10. Nikolay Martsenko Pons 1m21.442s +0.345s
11. Arthur Pic AV 1m21.445s +0.348s
12. Carlos Huertas Carlin 1m21.490s +0.393s
13. Pietro Fantin Arden Caterham 1m21.506s +0.409s
14. Matias Laine P1/Strakka 1m21.527s +0.430s
15. Stoffel Vandoorne Fortec 1m21.569s +0.472s
16. Jazeman Jaafar Carlin 1m21.623s +0.526s
17. Nico Muller Draco 1m21.651s +0.554s
18. Daniil Move SMP/Comtec 1m21.760s +0.663s
19. Lucas Foresti SMP/Comtec 1m21.786s +0.689s
20. Will Buller Zeta 1m21.839s +0.742s
21. Christopher Zanella ISR 1m21.910s +0.813s
22. Mikhail Aleshin Tech 1 1m21.976s +0.879s
23. Andre Negrao Draco 1m22.038s +0.941s
24. Zoel Amberg Pons 1m22.155s +1.058s
25. Yann Cunha AV 1m22.760s +1.663s
26. Mihai Marinescu Zeta 1m23.024s +1.927s