Landa's 27-second lead remained unchanged as he saved his legs in the main group, while Barbero launched an impressive acceleration in the final hundred metres to power past Julian Alaphilippe (Quick-Step Floors) and Gianni Moscon (Team Sky) and win the penultimate stage.
Sandwiched between two stages with summit finishes, stage four of the Vuelta a Burgos gave a chance for the puncheurs to shine, with four riders going on the attack early in the stage: Ben King (Dimension Data), Antoine Duchesne (Direct Energie), Etienne van Empel (Roompot-Nederlandse Loterij), and Marcos Jurado (Burgos-BH).
They enjoyed a maximum lead of around three minutes, but were steadily reeled in by the peloton, led by Team Sky in the defence of race leader Mikel Landa, the catch being made with a little under 13km remaining.
The break caught, Sky left it to the other teams to take over control of the pace-setting, with Aqua Blue Sport moving to the front as they tried to set things up for Adam Blythe.
The Irish team kept the pace high as Roompot-Nederlandse Loterij and Quick-Step Floors began to organise behind, but it was Dimension Data who came to the front and sought to challenge them with five kilometres remaining.
A slight rise with two kilometres remaining slowed the pace as the peloton moved onto narrow roads, before the final ramp up towards the finish.
Gianni Moscon was the first to launch his sprint, but he was quickly overhauled by Julian Alaphilippe, before Barbero went over the top of both of them to take the stage win.
Meanwhile Mikel Landa finished safely in the group behind to maintain his 27-second lead going into Saturday's final stage.
Vuelta a Burgos 2017, stage four: Nabal (Gumiel de Izán) to Ciudad Romana de Clunia, 147km
1. Carlos Barbero (Esp) Movistar, in 3-19-19
2. Gianni Moscon (Ita) Team Sky
3. Julian Alaphilippe (Fra) Quick-Step Floors
4. Mauro Finetto (Ita) Delko Marseille Provence KTM
5. Merhawi Kudus (Eri) Dimension Data
6. Matteo Trentin (Ita) Quick-Step Floors
7. Jonas Van Genechten (Bel) Cofidis
8. Eduard Prades (Spa) Caja Rural-Seguros RGA
9. Eliot Lietaer (Bel) Sport Vlaanderen-Baloise
10. Daniel Moreno (Esp) Movistar Team
General classification after stage four
1. Mikel Landa (Esp) Team Sky, in 15-00-51
2. David de la Cruz (Esp) Quick-Step Floors, at 27 secs
3. Enric Mas (Esp) Quick-Step Floors, at 46 secs
4. Jaime Rosón (Esp) Caja Rural-Seguros RGA, at 54 secs
5. Miguel Ángel López (Col) Astana, at 1-02
6. Igor Anton (Esp) Dimension Data, at 1-13
7. Merhawi Kudus (Eri) Dimension Data, at 1-31
8. Gianni Moscon (Ita) Team Sky, at 1-34
9. Jetse Bol (Ned) Manzana Postobon, at 1-40
10. Sergey Chernetskiy (Rus) Astana, at 1-42
Tweets of the week: Did Geraint Thomas run over a small child?
Also featuring Patrick Lefevere, Alex Dowsett and Rigoberto Urán
By Jonny Long •
'I had thoughts of just packing it all in': Gabriel Cullaigh's lonely experience and rejection with Movistar
The Yorkshireman explains why he was unable to deliver on the promise he showed at U23 level
By Chris Marshall-Bell •