Bardet took the stage and moved up the General Classification whilst Aru moved into the yellow jersey as Chris Froome (Sky) faltered.
After a hard day of climbing, 214.5 kilometres through the Pyrenees, it all came down to the final few hundred metres charge to the line.
A tough tense battle had seen the favourites patiently wait for their chance to strike on the final push to the finish line atop the Peyragudes.
Aru catapulted his way off the front first, going clear as the other big climbers scrambled frantically to respond.
Froome looked lost when the attacks came, struggling his way up the steep incline as Aru charged clear, even being left behind by Sky teammate Mikel Landa.
Bardet hunted Aru down and passed him, going on to win the stage and move to within 25 seconds of the lead followed by Cannondale-Drapac's Rigoberto Uran who also bridged across. Aru boxed on despite visibly tiring and managed to finish third on the stage and move into the yellow jersey.
Aru boxed on despite visibly tiring and managed to finish third on the stage and move into the yellow jersey.
Froome faded to finish 22 seconds back on stage-winner Bardet, but his yellow jersey bid is far from lost and he remains just six seconds behind Aru in the general classification battle.
As it happened
There was a fierce battle from the gun to make the early breakaway with every team keen to be present in a breakaway that had a good chance of lasting to the finish.
Jay McCarthy (BORA-hansgrohe) tried his luck with a three-man move that nearly escaped from the peloton, but it was dragged back before a 12-man attack went clear.
In the move were Cyril Gautier (AG2R), Diego Ulissi (UAE Team Emirates), Michael Matthews (Sunweb), Jack Bauer, Marcel Kittel (both Quick-Step Floors), Koen de Kort (Trek-Segafredo), Nils Politt (Katusha-Alpecin), Imanol Erviti (Movistar), Stefan Kung (BMC), Thomas de Gendt (Lotto Soudal), Julien Simon (Cofidis) and Steve Cummings (Dimension Data).
The gap got out to a maximum advantage of seven minutes, with Team Sky keeping the advantage of the escapees largely in check. With none of the riders a threat on the general classification, it was clear they had their eyes set on a stage win for Froome.
Michael Matthews and Marcel Kittel were out front for one goal only, their pursuit of points in the green jersey battle at the intermediate sprint. It was a sprint that was launched late, with Matthews coming around the outside and proving just fast enough to hold off Kittel in the run to the line. In the scheme of the green points jersey, it didn't occasion a big change, Matthews reduced his deficit from 133 points to 130 points.
Thomas de Gendt was the man most interested in the points for the King of the Mountains jersey and took out the Category 4 climb of the Cote de Capvern and the Category 2 Col des Ares, before Matthews took it upon himself to protect his teammate Warren Barguil's polka dot jersey by sprinting past de Gendt on the Category 1 Col de Menthe.
The peloton was gradually whittling down the advantage of the breakaway throughout the ascents and as the race hit the Port des Bales Hors Category climb, Brice Feillu (Fortuneo-Oscaro) tried his luck by attacking from the base with teammate Maxime Bouet. Despite making good headway initially, he got stuck midway across the gap before getting caught quickly by the peloton.
The breakaway was gradually thinned down on the steep climb until only Cummings and de Gendt remained. The British rider dropped de Gendt as they neared the top of the climb, cresting the summit by himself and remaining the only rider from the original move with a chance at winning the stage.
Barguil jumped clear of the peloton to scoop up some more mountain points before again retreating to the peloton on the descent. The long, sinuous descent only caught out Gautier, who tried to bunny hop the kerb, only to crash into the embankment.
Cummings pushed out his gap a bit during the descent, but still had the Category 1 climb of Peyresourde and the final kick up tp Peyregudes to contend with and only two minutes in hand.
Coming into the bottom of the Peyresourde, Mikel Nieve (Sky) overcooked a corner and Froome followed his line. Aru was caught up in the mistake as well, but the group of favourites sat up to wait for the yellow jersey to rejoin, despite there being no real reason to do so.
With Froome safely back in the group, Sky stamped their authority on the race, accelerating and dropping riders rapidly from the back of the favourites group, most notably Nairo Quintana (Movistar).
The favourites quickly dragged back the advantage of Cummings and the Nieve-led peloton kept on pushing hard right over the top of the Peyresourde and into the foot of the Peyregudes. The final wall up to the finish line was an imposing sight, rising at a back-breaking 20 per cent.
Aru led the attack at the finish, hitting out aggressively and zig-zagging his way up the road. Bardet bridged up to him and passed the Italian, continuing to push strongly all the way up the final kick, taking out the stage win. Aru faded slightly and had Uran overtake him, but the Italian did enough to finish third and secure the yellow jersey.