Paris - Kylian Mbappe was sent off for a shocking tackle late in extra time as Paris Saint-Germain were stunned by Rennes in Saturday's French Cup final, losing 6-5 on penalties after a dramatic game finished 2-2 at the end of extra time.
Substitute Christopher Nkunku blazed his sudden-death spot-kick over the bar in the shootout, sparking scenes of joy among the Rennes fans at the Stade de France as they won a first trophy in almost half a century.
It was a remarkable comeback from the Brittany side, who had seen Dani Alves and Neymar give Ligue 1 champions PSG a 2-0 lead midway through the first half.
Thomas Tuchel's side appeared poised to wrap up a domestic double, but Presnel Kimpembe's own goal just before the break gave Rennes hope and Edson Mexer headed them level in the 66th minute to take a gripping final - attended by President Emmanuel Macron - to extra time.
Penalties were already looming when Mbappe was shown a straight red card by referee Ruddy Buquet for a dreadful challenge on Damien Da Silva near the corner flag.
The France star caught the Rennes defender on the knee with his studs, and can expect a lengthy ban as a result.
Without him, PSG fell short of securing the double in Tuchel's first season in charge, which will also be remembered for their Champions League exit to Manchester United in the last 16.
Instead, it is traditional underachievers Rennes who celebrate a historic victory, their first silverware since the 1971 French Cup also meaning a return to the Europa League next season.
Few of their fans would have imagined that possible after the way they started the game, with PSG looking more like their former selves as Neymar made his first start in three months after injury.
Alongside him, Angel Di Maria was back for his first appearance in more than a month, as PSG went looking for their second trophy in seven days.
Rennes had been knocked out of this competition following heavy defeats by PSG in the earlier rounds in each of the last two seasons, and another hiding looked on the cards as PSG went 2-0 up early on.
The opener came in the 13th minute when a corner fell to Alves just outside the area and he met the ball with a volley from 20 yards that flew low into the corner.
The second goal came midway through the first half, as a stray Hatem Ben Arfa pass was intercepted by Alves and it was Di Maria who sent Neymar through to score with a delightful chip over Tomas Koubek, who had come off his line.
It was a 21st goal of the season for the world's most expensive player, despite that enforced three-month hiatus.
Rennes roused themselves to finish the half strongly, however, and Mbaye Niang struck a post before they reduced the arrears five minutes from the interval. Hamari Traore crossed from the right and Kimpembe sliced the ball into his own net.
They continued to cause problems to PSG at the start of the second half, and it was not a surprise when Rennes equalised in the 66th minute as Clement Grenier's corner from the left was headed home by Mexer, a rare goal from the Mozambican defender.
Into extra time they went, with Tuchel sending on Edinson Cavani, another PSG star who has spent much of the recent weeks on the sidelines.
Neymar set up Mbappe for a shot against the post, but proof that Rennes had done more than just ruffle PSG's feathers came when France's golden boy was sent off. It was not to be his or PSG's night, for once.
Recent winners of the French Cup after Rennes beat Paris Saint-Germain on penalties in Saturday's final:
2017/18: Paris Saint-Germain
2016/17: Paris Saint-Germain
2015/16: Paris Saint-Germain
2014/15: Paris Saint-Germain
2009/10: Paris Saint-Germain
Most overall wins (most recent in brackets):
12 - Paris Saint-Germain (2018)
10 - Marseille (1989)
6 - Saint-Etienne (1977), Lille (2011)