Sebastian Vettel moved Red Bull to the top of the timesheets in second practice for the German Grand Prix at the Nurburgring.
The German seized control of the session on his first soft-tyre run, working his way down to a 1m30.416s that would stand for the remainder of the session.
Team-mate Mark Webber, on pole here in 2009 and '11, had been fastest in the early medium-compound running and again when the field first switched to softs.
He was bumped down however, first by Vettel and then by the Mercedes of Nico Rosberg, who got to within a quarter of a second of Vettel's time.
Webber did put it one of the stronger long-run stints, managing over 20 laps on mediums and at times gaining almost two seconds on the soft-shod Vettel.
Free practice one pacesetter Lewis Hamilton did not match team-mate Rosberg's improvement on the option tyre, and while he initially slotted into fourth he was gradually eased down to eighth as Lotus' and Ferrari's drivers improved.
Romain Grosjean beat Kimi Raikkonen to fourth by just five thousandths of a second, while Fernando Alonso - now free of the electrical gremlins which dogged him in first practice - shaded Massa by an even smaller margin in the fight for sixth.
Hamilton ended two tenths down the road in eighth, and as the final man to get within one second of the ultimate pace.
Jenson Button was next up, fractions ahead of Force India duo Paul di Resta and Adrian Sutil, the latter of whom lost time in the garage following a wild exit at the final turn.
The order below was largely grouped into teams, with Sergio Perez in 14th the only exception as Toro Rosso shaded Sauber, Williams, Caterham and Marussia.
Valtteri Bottas and Pastor Maldonado staged the closest of the inter-team fights, with the Finn edging out his stable-mate by just one thousandth of a second in what was a fight for 17th.
Jules Bianchi, back at Marussia in place of free practice one stand-in Rodolfo Gonzalez, sat out the final 30 minutes of running due to illness.
Pos Driver Team Time Gap Laps
1. Sebastian Vettel Red Bull-Renault 1m30.416s 39
2. Nico Rosberg Mercedes 1m30.651s + 0.235s 38
3. Mark Webber Red Bull-Renault 1m30.683s + 0.267s 41
4. Romain Grosjean Lotus-Renault 1m30.843s + 0.427s 32
5. Kimi Raikkonen Lotus-Renault 1m30.848s + 0.432s 27
6. Fernando Alonso Ferrari 1m31.056s + 0.640s 39
7. Felipe Massa Ferrari 1m31.059s + 0.643s 41
8. Lewis Hamilton Mercedes 1m31.304s + 0.888s 35
9. Jenson Button McLaren-Mercedes 1m31.568s + 1.152s 37
10. Paul di Resta Force India-Mercedes 1m31.797s + 1.381s 40
11. Adrian Sutil Force India-Mercedes 1m31.824s + 1.408s 34
12. Daniel Ricciardo Toro Rosso-Ferrari 1m31.855s + 1.439s 42
13. Jean-Eric Vergne Toro Rosso-Ferrari 1m32.055s + 1.639s 39
14. Sergio Perez McLaren-Mercedes 1m32.086s + 1.670s 36
15. Nico Hulkenberg Sauber-Ferrari 1m32.495s + 2.079s 39
16. Esteban Gutierrez Sauber-Ferrari 1m32.762s + 2.346s 44
17. Valtteri Bottas Williams-Renault 1m32.879s + 2.463s 35
18. Pastor Maldonado Williams-Renault 1m32.880s + 2.464s 36
19. Charles Pic Caterham-Renault 1m33.695s + 3.279s 38
20. Giedo van der Garde Caterham-Renault 1m33.804s + 3.388s 40
21. Jules Bianchi Marussia-Cosworth 1m34.017s + 3.601s 10
22. Max Chilton Marussia-Cosworth 1m34.667s + 4.251s 39