But Gerrans dug deep to clinch his second career Tour stage win. Spaniard Jose Joaquin Rojas finished third.
"To beat a guy like Sagan in a sprint like that, I'm very happy," the 33-year-old Gerrans said. "It went perfectly for me."
Gerrans was slowing up, but just managed one last effort to throw his bike forward the way a 100-meter runner would dip for the line.
"I wasn't sure if I had won a half-wheel length?" Gerrans said. "All went perfectly well, my team took great care of me after the last climb."
Bakelants, the winner of Sunday's second stage, finished in 19th place.
"The team worked very hard for me, and I'm very happy to keep the yellow jersey," Bakelants said. "It was a very hot day and the conditions were not easy."
Monday's 90-mile trek started from Ajaccio, where French emperor and military mastermind Napoleon Bonaparte was born in 1769, and finished in Calvi after three moderate climbs and a steeper last climb tested the legs of the peloton.
Gerrans clocked a winning time of 3 hours, 41 minutes, 24 seconds.
It was the last of the trio of Corsican stages before the race heads back to mainland France for Tuesday's team time trial in Nice.
A five-man breakaway consisting of Frenchmen Cyril Gautier, Alexis Vuillermoz, Sebastien Minard, Clarke and Dutchman Lieuwe Westra was gradually pegged back as the stage snaked through the Corsican hills.
Tour de France
P Tuesday, 7 a.m., NBCSN