The fight for the early breakaway was toughly contested, with a strong Australian presence in the move that eventually broke away from the peloton.
Four of the ten riders present in the move were Australian, with Lucas Hamilton (Mitchelton-Scott), Michael Rice (Hagens Berman Axeon), Jonny Clarke (UnitedHealthcare) and Brendan Canty (EF Education First-Drapac) flying the flag next to Tony Baca (303 Project), Hamish Schruers (Israel Cycling Academy), Gage Hecht (Aevolo), Rob Britton (Rally Cycling), Damiano Cima (Nippo-Vini Fantini) and Laurent Didier (Trek-Segafredo).
The break was eventually brought back, with the teams of the sprinters keen to bring it back for a final bunch kick. Australian Will Clarke (EF Education First-Drapac) tried a final late move off the front of the peloton, but he was brought back by an injection of pace from Hagens Berman Axeon and the final sprint was set to go.
McCabe waited in the wheel of lead-out man Sebastian Haedo and launched his sprint at the same time as Jasper Philipsen (Hagens Berman Axeon), getting the better of the Belgian with the final throw to the line. Edwin Avila (Israel Cycling Academy) finished third.
"The team's strategy played out perfectly," McCabe said. "We knew it was going to be a long day and hot, so we didn't want to take full responsibility overall. The plan was to put someone in the break. We thought that today was the day a breakaway could stick, and we wanted to give opportunities to other riders as well.
"It worked out really well," McCabe said. "Jonny did a great job, and then he got away in the end with Rob. Again it allowed us to not take charge until the very last minute, and we used [Sebastian Haedo] to put me in perfect position for the sprint. Then it was just a drag race between Jasper and I."
The stage did little to change the general classification picture, with Sepp Kuss (LottoNL-Jumbo) leading the race from teammate Neilson Powless.