The Victoria native won his third straight medal in the men's 800-metre freestyle Wednesday, charging down American Connor Jaeger on the final 100 metres to win the bronze medal in seven minutes 43.70 seconds.
The 24-year-old won silver in the event at the 2011 worlds in Shanghai, and bronze in 2009 in Rome.
China's Sun Yang took the gold in 7:41.36. Cochrane, who came an agonizing fourth in the 400-metre freestyle Sunday, was edged by American Michael McBroom by 0.1 seconds for silver.
"The touches aren't my friend this meet," Cochrane said. "It was hard getting fourth place. It's a frustrating place to be but with a world championships anything can happen. There's so many great competitors that in this 800 I think anybody had a chance at the podium.
"To know I could claw my way back onto the podium is great and we have the 1,500 to look forward to after this."
Randy Bennett, head coach of the national team and Cochrane's coach at the Victoria Academy of Swimming, characterized the race as "interesting."
"Five guys in it all the way and it's not that normal in the distance freestyle," Bennett said. "It's usually a two- or three-horse race but it was interesting — he could have been fifth.
"It's great racing for him to get his hand on the wall in the third place position and be aware that he had to go in the last 100 as hard as he did, so we'll take the medal and run with it but you always want a little bit more."
The medal is Canada's fifth overall at the championships, and second in swimming. Victoria's Eric Hedlin won a silver medal in the 5-km open water race earlier in the two-week event, which also features water polo, diving, synchronized swimming and a new high diving discipline.
Also Wednesday, American Missy Franklin held off a late challenge from Federica Pelligrini to win the 200-metre freestyle.
The win came after Franklin pulled of the 50-metre backstroke, ending a possible bid for eight gold medals at a single major event.
She also has gold medals here from the 4x100 free relay and the 100 backstroke.
The 18-year-old entered eight events, giving her a chance to match Michael Phelps as the only swimmers to win that many events at a major championship.
But, after a tough double on Tuesday and a lacklustre showing in the morning preliminaries, Franklin and her coach, Todd Schmitz, decided to scratch the 50 backstroke — a non-Olympic event that she swims mainly for fun, though she did take bronze at the 2011 worlds in Shanghai.
There was only a 20-minute break between the semifinals of the 50 back and the final of the 200 free, and the latter was much more important to Franklin. She just missed a medal in that event at the London Olympics, losing out for third by a hundredth of a second.
"We decided that maybe the risk kind of outdid the rewards," Franklin said. "So we decided not to do it. It was fun to swim it this morning but I'm really happy with the decision to scratch and just do this."
France's Camille Muffat went out hard, leading after the first lap and 0.75 under the world-record pace. But Franklin edged ahead at the midway point and held off hard-charging Federica Pelligrini of the Italy, the world-record holder, to win in 1 minute, 54.81 seconds.
Pelligrini claimed silver, 0.33 behind the winner, while Muffat settled for the bronze.
The worlds continue through Sunday. Cochrane is back in action in the 1,500-metre freestyle heats Saturday. He has back-to-back world championships silver medals in that event, along with the 2012 Olympic silver.
"The field is getting faster and faster and I think one of the mistakes we made (in the 800) is playing into everybody else's race tactics," Cochrane said. "Seeing that the field was so even shows we were all trying hard but maybe not executing the race plans we wanted to. In the 1,500 you can have front-end speed, back-end speed, people who have different technical sides."
Three other Canadians had evening swims Wednesday.
Audrey Lacroix and Katerine Savard of Pont-Rouge, Que. both competed in the women's 200-metre butterfly semifinals. Lacroix narrowly missed qualifying for the final and finished 10th. Savard finished 15th.
Sinead Russell of Burlington, Ont., finished 14th in the 50-metre backstroke semifinals.
Earlier in the day, Calgary's Joel Greenshields finished 38th in the 100-metre freestyle and Andrew Ford of Guelph, Ont., finished 23rd in the 200-metre individual medley.
— With files from The Associated Press.