Whilst it was debatable whether Hamilton had the raw pace to match Vettel today, once he lost out at the first corner, he certainly had enough to make life extremely difficult for him.
But McLaren blinked first and pulled Hamilton in, even though it was always likely that he needed a few more laps to clear Kubica. So it was to be and when Vettel came in, he was able to get out ahead of Kubica (and Kobayashi) and pull away, giving him the space he needed.
However, if Hamilton had managed to win the race, Alonso would now be World Champion for the third time. In the interests of sportsmanship and the lack of it shown by Ferrari in Germany, it is probably best he isn’t.