Bennett (BORA-hansgrohe) claimed his first stage victory at the Vuelta ahead of Edward Theuns (Trek-Segafredo) and Luka Mezgec (Mitchelton-Scott)
Bennett's compatriot Nicolas Roche (Sunweb) retained the overall lead making the stage the first where an Irish rider has won a stage of a Grand Tour while another holds the leader's jersey.
Roche retained an advantage of two seconds over Nairo Quintana (Movistar) and five over Rigoberto Uran (EF Education First).
A red hot Bennett was the favourite for a relatively flat third stage and the 28-year-old delivered, claiming his 12th win of the season.
"I felt so bad yesterday, I can't tell you how bad my legs were in the stage," Bennett said.
"The team got me in the right place at the right time. If it wasn't for the team effort today I definitely wouldn't have got it.
"I went with momentum to the left, got on Trek and I knew it was a really fast final and kicked first. I think Trek waited a little bit too long.
"I'm delighted to get it. It means a lot to take a Grand Tour stage victory, especially in the Irish national champion's jersey."
Bennett pulled away from Theuns in the final 200 metres before Mezgec nipped in front of Jon Aberasturi (Caja Rural) and Phil Bauhaus (Bahrain-Merida) to take third.
Fabio Jakobsen (Deceuninck-QuickStep) and Fernando Gaviria (UAE Team Emirates) had been expected to challenge Bennett for the stage win but Jakobsen settled for seventh after struggling on the last climb. Gaviria lost touch with 11km to go.
Stage 4 runs 175.5km from Cullera to El Puig with the flat finish again suited to the sprinters.