Mo Farah made it six global distance titles in a row as he retained his 10,000m crown after a last-lap stumble to win Britain's first gold of the 2015 World Championships.

Seven years ago in this stadium Farah crashed out of the 2008 Olympics after failing to qualify from the heats of the 5,000m.

But the 32-year-old Olympic champion saw off the determined team effort of his three Kenyan challengers before producing a last lap of 54.15 seconds to come away from Geoffrey Kamworor and Paul Tanui in the home straight.

It is a familiar sight now with Farah, an athlete transformed from the undisciplined also-ran of 2008, but it was no less impressive: a last 800m in 1 min 56.01 secs and a last mile of 4:06.6 to win in 27: 01.13.

Kamworor took silver and Tanui bronze with Farah's training partner Galen Rupp fading into fifth, the two Kenyans and team-mate Bedan Muchiri attempting to negate Farah's fast finish by pushing the pace early on.

But in warm, sticky conditions – 25 C and 60% humidity despite the race finishing after 10pm local time – Farah sat in behind his rivals as they produced a series of laps around 64 seconds and then kept closer order still as the pace dropped away in the heat.

The Briton went briefly to the front with four and a half laps to go and then again with 1200 metres left, before surging definitively with 500m to go, a lead he would never relinquish despite a trip as he overtook a lapped runner.

With a series of allegations made against his coach Alberto Salazar – there is no suggestion Farah has done anything wrong – this has been a difficult summer for the man who won the 10,000m and 5,000m double at both the last Worlds in Moscow and the London Olympics.

But Farah, an uncomplicated man, has retreated into what he knows best: disciplined training, tactically perfect racing.

And with the 5,000m final in a week's time, he has the chance to leave Beijing as arguably his nation's greatest ever athlete.


NULL Invalid API key or channelobject(stdClass)#8397 (1) { ["error"]=> object(stdClass)#8333 (3) { ["code"]=> int(403) ["message"]=> string(117) "The request cannot be completed because you have exceeded your quota." ["errors"]=> array(1) { [0]=> object(stdClass)#8417 (3) { ["message"]=> string(117) "The request cannot be completed because you have exceeded your quota." ["domain"]=> string(13) "youtube.quota" ["reason"]=> string(13) "quotaExceeded" } } } }