The An Post-Chain Reaction rider outsprinted Michal Golas (Omega Pharma-Quickstep) and Martin Elmiger (IAM Cycling) after a group of riders pulled clear on the second climb of the category one mountain in Wales.
Ian Stannard (Team Sky) led home team-mate and gold jersey holder Wiggins and, by keeping the group together, successfully helped preserve the four-times Olympic gold medallist’s 37-second lead.
Stannard is second in the general classification and leads Switzerland’s Elmiger by six seconds.
Bennett – a protege of Irish cycling great Sean Kelly – completed the 177km ride from Machynlleth to Caerphilly in four hours 35 minutes 28 seconds.
The 22-year-old, who was beaten to the line by Gerald Ciolek (MTN-Qhubeka) in Kendal on stage two went one better after launching an attack from the middle of the group on Caerphilly Mountain, having already conquered Cwm Owen and the Brecon Beacons.
After clinching his first career stage victory the Belgium-born rider said: “It was a real hard fight coming into the finish but I knew if I hung on up the climb that I would recuperate quick enough for the sprint and I just hung in.
“It was a bit of a gamble going into the last corner – I went a bit wide – but I had enough acceleration to take the win.”
Nairo Quintana (Movistar) and Dan Martin (Garmin-Sharp) were particularly aggressive over the Welsh hills, building on an early break from Pete Williams (IG Sigma Sport), Stefano Pirazzi (Bardiani-Valvole), Jacob Rathe (Garmin-Sharp) and Angel Madrazo (Movistar).
Spain’s Madrazo retained the King of the Mountains jersey while securing his place at the top of the sprints classification.
Pressure from Team Sky duo Mat Hayman and Stannard saw the breakaway quartet caught with 14km remaining, with Williams dropping away first, but Quintana and Martin continued to try their luck with Elmiger.
The incessant fast climbing ultimately scuppered Bennett’s challengers, though, and he punched into the final bend with 200m remaining to take the win from Golas.
An impressive ride from Great Britain’s Simon Yates, 21, earned him sixth place on the day and saw him reach eighth in the general classification before today’s summit finish on Haytor in Devon. The race finishes in London on Sunday.