Yates (Ineos Grenadiers) used his team-mates brilliantly before counter-attacking hard in the final few kilometres over the top of a group including Valverde (Movistar) with Sepp Kuss (Jumbo-Visma) able to follow too.
Chaves attacked out of the peloton a few kilometres later and very nearly made it across to Yates, who finished 13 seconds ahead of the Colombian rider and former team-mate. Yates' victory on the summit finish moved him into the overall lead, 45 seconds clear of second place.
Leader at the start of the day João Almeida (Deceuninck - Quick-Step) slipped down to third overall at 50 seconds behind Yates after he was isolated with a big amount of the climb still to go. Yates holds the overall lead over fellow Ineos man, Richie Porte by 45 seconds going into the next mountain stage on Thursday.
How it happened
The 203.1km long stage started at the Canal Olímpic de Catalunya before taking in a rather unchallenging course for much of the day until the riders got to Camprodon, where they started the climb up to the summit finish of Vallter 2000.
Nine riders went up the road early on, with Thymen Arensman (Team DSM), Alexander Kamp (Trek-Segafredo), Clément Venturini (Ag2r-Citroën), Thomas Champion (Cofidis), Alex Evans (Intermarche-Wanty-Gobert), Francisco Galván (Kern Pharma), Colin Joyce (Rally), Sean Bennett and Reinhardt Janse Van Rensburg (both Qhubeka-Assos) all included in the escape.
The gap to the break went out to 12 minutes before Ineos Grenadiers, Jumbo-Visma, and Deceuninck - Quick-Step started the chase behind for their leaders, bringing the gap down to around five minutes. The break's advantage needed to be brought down with Galván at just 1-02 behind the overall leader, João Almeida.
As they went onto the climb with 20km to go the gap was still over four minutes up to the break, which was working well together ahead of the peloton led by Deceuninck - Quick-Step. The Belgian team were using Rémi Cavagna and Josef Černy on the lower slopes.
With 18km to go however Ineos Grenadiers rejoined the front of the peloton alongside Deceuninck - Quick-Step and Israel Start-Up Nation as the bigger gradients were just around the corner.
The break still held around three minutes with 12km to go but Joyce became the first rider to be dropped out of the back of the leading group. He was quickly joined by Janse Van Rensburg and sprinter Venturini as Galván also struggled to hold the pace.
Alejandro Valverde (Movistar) was the first to roll the dice from the peloton with 10km to go, with Richard Carapaz (Ineos Grenadiers), Michael Woods (Israel Start-Up Nation), Sepp Kuss (Jumbo-Visma), and Giulio Ciccone (Trek-Segafredo) the riders to follow the 40-year-old's move.
That attack put Chris Froome (Israel Start-Up Nation) out of the back as he slowly finds his way back to form.
The Valverde group's advantage was short-lived however, and they were quickly brought back to the fold.
Simon Yates (BikeExchange) was the next man to push on but the peloton was very keen to not let him get away at the 8km to go mark. Almeida was isolated by this point and was now being forced as race leader to chase solo before his team-mate Fausto Masnada managed to come up and help.
Valverde then kicked again and got away solo with 7km to go with the other overall favourites left looking at each other.
Arensman was the last man standing from the break by now, holding just over a minute with 6km to go over both Valverde and the chasing peloton led by Ineos Grenadiers. Nairo Quintana (Arkéa-Samsic) then kicked hard away from the peloton, leaving everyone behind as he looked to bridge his former team-mate of Valverde, which he did very quickly.
Ciccone was the next man to bridge to Quintana and Valverde closely followed by Carapaz but the Ecuadorian looked to be struggling. As Carapaz began to fade, his team-mate Adam Yates launched his move with 5km to go, immediately bridging across with Sepp Kuss. Yates then flew past the Quintana group, dropping everyone but Kuss and Valverde.
The trio of climbers quickly bridged to Arensman with 4.5km to go as they held 30 seconds back to the peloton, with Almeida now refusing to work alone. That gave incentive for Esteban Chaves to hit out to try and get across.
Arensman found something deep down to have enough energy to try a late attack, but Yates, Kuss and Valverde eased back across with 3km to go, dropping the Dutchman from the break.
Kuss tried a move with 2.5km to go but he was swiftly brought back by Yates as Valverde lost the wheel slightly. Harm Vanhoucke (Lotto-Soudal) and Carthy tried a late move to get across from the peloton but had seemingly left it too late.
Valverde lost touch with his fellow breakaway companions with 2km to go, Yates then attacking Kuss a few hundred metres later, dropping Kuss as he rode to victory.
Chaves flew past Valverde and Kuss and was closing rapidly on Yates inside the final kilometre but he never made it, with Yates crossing the line first, 13 seconds ahead of the Colombian climber.
Yates now holds 45 seconds ahead of his team-mate, Richie Porte in the overall standings and a further 50 seconds to the former leader, Almeida as the race continues in the high mountains on Thursday's stage four.
Volta a Catalunya 2021, stage three: Canal Olimpic de Catalunya to Vallter 2000 (203.1km)
1. Adam Yates (GBr) Ineos Grenadiers, in 5-00-58
2. Esteban Chaves (Col) Team BikeExchange, at 13 seconds
3. Alejandro Valverde (Esp) Movistar Team, at 19s
4. Geraint Thomas (GBr) Ineos Grenadiers, at 31s
5. Harm Vanhoucke (Bel) Lotto-Soudal, at same time
6. Sepp Kuss (USA) Team Jumbo-Visma, at 33s
7. Hugh Carthy (GBr) EF Education-Nippo, at same time
8. Michael Woods (Can) Israel Start-Up Nation, at 36s
9. Richie Porte (Aus) Ineos Grenadiers
10. Giulio Ciccone (Ita) Trek-Segafredo, all at same time
General classification after stage three
1. Adam Yates (GBr) Ineos Grenadiers, in 9-44-21
2. Richie Porte (Aus) Ineos Grenadiers, at 45 seconds
3. João Almeida (Por) Deceuninck - Quick-Step, at 50s
4. Geraint Thomas (GBr) Ineos Grenadiers, at 53s
5. Wilco Kelderman (Ned) Bora-Hansgrohe, at 1-03
6. Alejandro Valverde (Esp) Movistar Team, at 1-04
7. Hugh Carthy (GBr) EF Education-Nippo, at 1-16
8. Simon Yates (GBr) Team BikeExchange, at 1-21
9. Esteban Chaves (Col) Team BikeExchange, at same time
10. Harm Vanhoucke (Bel) Lotto-Soudal, at 1-30
Tim Bonville-Ginn is one of Cycling Weekly's content writers for the web team responsible for writing stories on racing, tech, updating evergreen pages as well as the weekly email newsletter.
Bonville-Ginn started working in cycling journalism while still at school and university for a voluntary site based on Twitter before also doing slots for Eurosport's online web team and has been on location at the Tour de Yorkshire, Tour of Britain, UCI World Championships and various track events. He then joined the Cycling Weekly team in late February of 2020.
When not writing stories for the site, Bonville-Ginn doesn't really switch off his cycling side as he watches every race that is televised as well as being a rider himself and a regular user of the game Pro Cycling Manager.
He rides a Specialized Tarmac SL4 when out on his local roads back in West Yorkshire as well as in northern Hampshire with the hills and mountains being his preferred terrain.
Tokyo 2020 Olympics: Germany unstoppable as they beat Great Britain to women's team pursuit gold
The Germans set their third world record of the Games to claim the gold medal
By Richard Windsor •
Tokyo 2020 Olympics: Danish rider crashes into back of GB's Charlie Tanfield during team pursuit heat
The Danes were well ahead in the first round heat before Frederik Madsen rode into the rear of the lone Charlie Tanfield
By Richard Windsor •
Egan Bernal and Adam Yates lead super-strong Ineos Grenadiers team for Clásica San Sebastián 2021
The Giro d'Italia winner returns to racing for the first time since taking pink in spring
By Tim Bonville-Ginn •
Ineos Grenadiers end partnership with Castelli in favour of new clothing sponsor
After five successful seasons, the British racing outfit is now parting ways with its Italian clothing partner
By Stefan Abram •
Early GC time gaps don't make much difference to eventual Tour de France podium, argues Ineos' Michał Kwiatkowski
The Polish super domestique says the British team were prepared to spend more energy early to keep GC riders safe, but even that can prove insufficient at the Tour de France
By Jonny Long •
Luke Rowe explains why he was handed fine on Tour de France stage three
The British rider was fined by commissaries for 'assault, intimidation, insults, threats, improper conduct'
By Cycling Weekly •
Tom Pidcock returns to road racing at Italian one-day race
The British rider is back racing just three weeks after breaking his collarbone
By Tim Bonville-Ginn •
Geraint Thomas: 'You need to be able to do everything well to win the Tour, it's not just about climbing'
The Brit gives his preview of the upcoming French Grand Tour where he will be vying for the yellow jersey
By Jonny Long •
Ineos announce their full Tour de France 2021 squad
Here is the eight-man team the British outfit will be taking to the French Grand Tour
By Jonny Long •
Rohan Dennis to join Jumbo-Visma from Ineos Grenadiers, reports suggest
The Australian joined the British team two years ago but it looks like he is on his way out
By Chris Marshall-Bell •