Van der Poel and Asgreen were the main aggressors on the cobbled climbs throughout the finale of the Tour of Flanders and once Wout van Aert (Jumbo-Visma) was dropped on the final ascent of the Oude Kwaremont, the pair worked well together to push through to the flat finish in Oudenaarde.
Van der Poel was left on the front from just short of two kilometres out from the finish, but the Dutch bunch sprint winner was expected to make short work of Asgreen in a rapid finish. However, as the sprint launched it was van der Poel who shook his head and sat up in the final metres, leaving Asgreen to salute his win and yell in pleasure as he crossed the finish line.
"I felt good in the last kilometres still, so I decided to trust my sprint," said Asgreen. "I got Mathieu on the front and I heard we had 30 seconds with a kilometre to go so I just stayed in the wheel, so I could decide when I wanted to go.
"It was a really hard race, we were both on the limit and I think it was just a question of margins at the end."
Stefan Bisegger (EF Education-Nippo), Nico Denz (Team DSM), Hugo Houle (Astana), Jelle Wallays (Cofidis), Mathias Norsgaard (Movistar), Mathijs Paasschens (Bingoal) and Fabio van den Bossche (Sport Vlaanderen-Baloise) made up the early move forging their gap out to a maximum of 13 minutes with 173 kilometres to go as the peloton sat up and let them get free.
Before the move had been decided there was a bit of aggression at the front of the peloton as Otto Vergaerde (Alpecin-Fenix) seemed to target Yevgeniy Fedorov (Astana) with a hard elbow. Fedorov stayed upright and surged back to the front of the peloton to have some words and a swerve at Vergaerde, though he didn't come close to contacting the Belgian rider.
Both riders were subsequently disqualified from the race, with Vergaerde on the end of some angry words from the staff in the Astana team car.
As Deceuninck-QuickStep and Jumbo-Visma began to commit to a hard chase at the front of the peloton the pace steadily increased until the point where it seemed like any corner or entry to the cobbles prompted a sprint to try and get to the front of the bunch.
The escapees out front were saved from such inconveniences and worked together well as they pushed into the serious climbs in the final 100 kilometres with still a seven minute advantage. There was a controversial disqualification for Michael Schar (AG2R La Mondiale) as the Swiss rider tossed a bidon to a waiting fan only to be disqualified by the race jury for throwing waste outside a dedicated 'litter zone'.
The gap began to fall rapidly to the front group of seven and a group jumped clear of the peloton with a good mix of the big teams represented in the attack. The attack wasn't going to stick, and a solo move from Soren Kragh Andersen (Team Sunweb) similarly didn't gain much ground.
Several crashes saw a numbers of riders in the peloton hit the ground on the run into the Oude Kwaremont, where the race saw its first big attacks. Deceuninck-QuickStep hit the race hard from the base and then Mathieu van der Poel (Alpecin-Fenix) took over towards the crest of the climb, briefly going clear with Kasper Asgreen (Deceuninck-QuickStep) before being brought back by the remnants of the peloton.
Up the front in the break, it was Bissegger who emerged as the strongest of the break, going free and setting himself with the task of holding a one minute gap to the peloton over the remaining 50 kilometres.
Pidcock counter after Paterberg with 49 kilometres to go, coaxing clear a group that included a number of secondary favourites, but also world road race champion Julian Alaphilippe. Alaphilippe chanced his hand on the next climb, the infamous ascent of the Koppenberg, overhauling Bissegger, but getting recaptured by the top riders, as a surge from van der Poel and van Aert meant that the top favourites moved back to the front of the race.
Marco Haller (Bahrain-Victorious) attacked on the flat with 39 kilometres to go, grinding his way clear of the group as he gained a headstart into the ascent of the Taaienberg. Asgreen put in a big surge of pace, then van der Poel took over along with Asgreen, Alaphilippe and van Aert, driving the pace over to Haller. Dylan Teuns (Bahrain-Victorious) bridged his way over to make it an elite group of six at the front of the race with 36 kilometres left to the finish in Oudenaarde.
Turgis scrambled across the gap from the next chasing group, making it a group of seven at the head of affairs.
Asgreen used a break in concentration as riders grabbed bidons from the side of the road to launch an attack, getting a gap which required an immediate response from van der Poel and van Aert. The pair made it across, but the other four riders didn't have it in them and drifted back and were eventually caught by the next chasers.
Van der Poel used the final ascent of the Oude Kwaremont to launch a devastating attack, dropping van Aert but with Asgreen able to re-join the powerful Dutchman after a prolonged chase to regain his wheel.
Asgreen worked with van der Poel and the Paterberg wasn't able to separate the front pair and they set off to the flat run into the finish with just a group of 12, including a recaptured van Aert chasing from 30 seconds behind.
The chasers initially made some headway but the pace and coordination went out of the group, prompting Greg van Avermaet (AG2R-Citroen) and Jasper Stuyven (Trek-Segafredo) to attack. They wouldn't make it across to the front pair however, with Asgreen pulling off the big upset against van der Poel in the sprint.
In the grovel to the line behind, it was van Avermaet completing the podium in third ahead of Stuyven, with Sep Vanmarcke (Israel Start-Up Nation) winning the bunch sprint for fifth.