Paul di Resta was an impressive third fastest in the Force India, which made news of his gearbox penalty all the more disappointing ahead of qualifying.
Hamilton signalled McLaren's intentions early on after the traditional early-session lull, going fastest with a 1m25.508s. Within moments that was challenged first by Sergio Perez in the Sauber, and then Lotus's Kimi Raikkonen.
But by the end of his long run on the hard tyres Hamilton had achieved an impressive 1m24.687s - faster than anything recorded yesterday - to establish himself at the top of the times ahead of his team-mate Jenson Button.
Just after halfway through the session though Alonso weighed in with his own hard-tyre effort – a 1m24.632s lap – that put him top in the Ferrari, while not long after that Rosberg was the first of the frontrunners to switch to the mediums. The Mercedes driver could only manage third however.
Rosberg's team-mate Michael Schumacher, who had been fastest in free practice one, was out of the picture by this stage with yet more reliability issues – this time with his KERS, so the five-time Monza winner instead focused on race set-up.
Into the final 10 minutes and most people switched to their low fuel, option tyre runs. Alonso was the first to fire in a time – 1m24.579s – only to see that beaten by 0.001 seconds by Hamilton.
And that was the way it stayed, ahead of di Resta and Felipe Massa in the second Ferrari. Button was fifth, having failed to get a clear lap towards the end of the session, and Rosberg sixth.
Perez was seventh quickest in the first of the Saubers ahead of Raikkonen, Nico Hulkenberg (emphasising Force India's pace) and Pastor Maldonado in the Williams.
Sebastian Vettel, who has not been a factor for much of the weekend so far, was 11th fastest and the top Red Bull runner. But he ended the session parked down at the second chicane with a technical issue and reporting a 'low battery'.