Team Sunweb worked hard from the very start of the 165km stage from Le Puy en Velay to Romans sur Isère, dropping the green jersey of Marcel Kittel (Quick-Step Floors) on a third category climb after less than 20km.
The German team then worked tirelessly on the front of the bunch as they made sure that Kittel was out of contention for the stage, allowing Matthews to pick up maximum points at the intermediate sprint and be in with a shout for the stage win.
However with high winds whipping across the route for much of the day, there would also be an opportunity for the teams of the GC contenders to try and force a split, and with 16km to go Team Sky did exactly that.
With four riders in front of the yellow jersey of Chris Froome, the British team accelerated to cause panic in the group behind.
The results weren't as spectacular as stage 11 of the 2016 race where Froome went off the front with Peter Sagan, but the move at least distanced Dan Martin (Quick-Step Floors), who ended up losing 48 seconds to the rest of the GC contenders, slipping from fifth to seventh overall.
In the front group Sunweb continued to work hard, shutting down a late attack by Daniele Bennati (Movstar) before putting Matthews in a perfect position in the wheel of Greg Van Avermaet (BMC Racing) with 300m remaining.
The Belgian opened his sprint from a long way out, but did not have the power to hold off Matthews, who came around the outside and held off the late charges of Edvald Boasson Hagen (Dimension Data) and John Degenkolb (Trek-Segafredo) to win his second stage of the race.
How it happened
The action kicked off the moment Christian Prudhomme dropped the flag for the start of the race with a flurry of attacks in the opening kilometres. None of the initial moves stuck, but as the road started to ramp up on the approach to the third category Côte de Boussoulet a few riders started to slip off the front.
Thomas Degand (Wanty-Groupe Gobert), Sylvain Chavanel (Direct Energie), and Thomas De Gendt (Lotto-Soudal) were the first to establish a few seconds advantage, before being quickly joined by British champion Steve Cummings (Dimension Data) and Alessandro De Marchi (BMC Racing).
Those five riders held a slender advantage of the peloton, but the official start of the 4.5km saw a number of counter-attacks off the front of the peloton to swell the breakaway to around 25 riders. However one of those riders was Dan Martin (Quick-Step Floors) who covered a move by Michael Matthews (Team Sunweb), meaning Team Sky moved to the front of the peloton to bring the group back.
However Matthews was clearly in good shape, and was quickly on the attack again to join another large group which had managed to slip off the front, the Australian going on the search for green jersey points as Marcel Kittel (Quick-Step Floors) was one of a number of riders to be dropped from the peloton.
By the top of the climb a five rider group was at the front of the race: De Gendt, Chavanel, Degand, Daryl Impey (Orica-Scott) and Nicolas Edet (Cofidis), who held a slender advantage over the peloton which had caught the Matthews group.
The end of the climb did not see any slackening of the pace as Team Sunweb moved to the front of the peloton to continue to set a high pace, trying to put more time into the Kittel group which crested the climb 25 seconds in arrears.
The fast pace also meant that the breakaway was soon caught, with Sunweb working hard to continue to distance Kittel, whose group steadily lost more ground, the green jersey not appearing to be enjoying the stage's searing pace on the lumpy roads.
By the team the front of the race reached the intermediate sprint with 43.5km remaining, Kittel's group was more than five minutes in arrears, allowing Matthews to pick up maximum point largely unopposed.
With 35km to go and the wind blowing across the road from right to left Trek-Segafredo became the first team to attempt to forced split, Koen De Kort hoping to catch out Team Sky as Michal Kwiatkowski rifled through a feed bag.
The move wasn't successful, but it made for a nervous few kilometres as the GC contenders fought for position at the front of the bunch.
After a long section into a headwind, the nerves really started to jangle with 18km remaining as the riders turned left into a section of road whipped by crosswinds. Sky went to the front and with 16km to go the men in white hit the front and really raised the pace.
The results weren't dramatic, but a group of around 25 riders were able to move off the front, with Dan Martin caught on the wrong side of the split.
With Martin, fifth on GC coming into the stage, caught out, all of the other GC contenders were eager to work on the front, Froome, Aru, Yates, and Bardet all doing their turns to drive the pace.
At nine kilometres remaining the race turned left into a tailwind, making for a high speed run towards the finish.
However the high speed was not enough to put of Daniele Bennati (Movistar) who attacked with two kilometres remaining, forcing Sunweb, working for Matthews, and Dimension Data, working for Boasson Hagen to take up the chase.
For a moment Bennati was able to enjoy a decent gap, but the Italian was caught with 800m to go as Greg Van Avermaet moved to the front to lead out the sprint.
However the Belgian had gone to early, and as the finish line came into sight he was overhauled by Matthews, who swung wide to the right of the road and held off John Degenkolb and a fast approaching Edvald Boasson Hagen to give his team their third stage win of the 2017 Tour de France.
The stage victory, together with his win in the intermediate sprint, moved Matthews up to 344 points in the race for the green jersey, just 29 points behind Marcel Kittel with five flat stages remaining.
Tour de France 2017, stage 16: Le Puy en Velay to Romans sur Isère, 165km
1. Michael Matthews (Aus) Team Sunweb, in 3-38-15
2. Edvald Boasson Hagen (Nor) Dimension Data
3. John Degenkolb (Ger) Trek-Segafredo
4. Greg Van Avermaet (Bel) BMC Racing
5. Christophe Laporte (Fra) Cofidis
6. Jens Keukeleire (Bel) Orica-Scott
7. Tony Gallopin (Fra) Lotto Soudal
8. Tiesj Benoot (Bel) Lotto Soudal
9. Maciej Bodnar (Pol) Bora-Hansgrohe
10. Romain Hardy (Fra) Fortuneo-Oscaro, all at same time
General classification after stage 16
1. Chris Froome (GBr) Team Sky, in 68-18-36
2. Fabio Aru (Ita) Astana, at 18 secs
3. Romain Bardet (Fra) Ag2r La Mondiale, at 23 secs
4. Rigoberto Uran (Col) Cannondale-Drapac, at 29 secs
5. Mikel Landa (Esp) Team Sky, at 1-17
6. Simon Yates (GBr) Orica-Scott, at 2-02
7. Daniel Martin (Irl) Quick-Step Floors, at 2-03
8. Louis Meintjes (RSA) UAE Team Emirates, at 6-00
9. Damiano Caruso (Ita) BMC Racing, at 6-05
10. Nairo Quintana (Col) Movistar, at 6-16
Thank you for reading 20 articles this month* Join now for unlimited access
Enjoy your first month for just £1 / $1 / €1
*Read 5 free articles per month without a subscription
Join now for unlimited access
Try first month for just £1 / $1 / €1