Sir Bradley Wiggins and his Team Sky team-mates defended numerous attacks - including a late dart by general classification rivals Dan Martin and Nairo Quintana - to maintain his 37-second overall advantage.
But Bennett led into the final corner before holding off Michal Golas and Martin Elmiger, who finished second and third respectively, for victory in Caerphilly, Wales.
The youngster also shone in the second stage where he was pipped on the line by Gerald Ciolek.
“It was a pretty wet start today and I was trying to keep dry,” said Bennett. “I knew if I could just hang on up the climb, I’d recuperate quick enough for the sprint.”
Friday's sixth stage looks set to be decisive in the battle for the gold jersey with weekend finishes in Guildford and central London favouring a bunch sprint finish.
Last year's Devon stage decided the race and this year sees the peloton tackle a 137km route between Sidmouth and Dartmoor, with a category one summit finish on Haytor.
Wiggins is attempting to become only the second British rider to win the Tour since the race was reconstituted in 2004, following last year's winner Jonathan Tiernan-Locke.