Rennes stunned Paris St-Germain on penalties to win their first French Cup since 1971.
Ligue 1 champions PSG, who had won the cup for the past four years, led 2-0 through a Dani Alves volley and chip from Neymar, starting his first game since January following a foot injury.
But Rennes levelled through a Presnel Kimpembe own goal and Mexer header.
Kylian Mbappe was sent off for a bad foul in extra time, while Christopher Nkunku missed the decisive penalty.
PSG, who were looking for a fourth domestic double in five years, looked in complete control as they took a 2-0 lead within 21 minutes.
Alves hit a stunning volley from Neymar's corner, before the forward lobbed goalkeeper Tomas Koubek from the edge of the box to double their lead.
Read also:
Ronaldo scores 600th club goal in Juventus draw
Messi wins La Liga title for Barca
Thomas Tuchel's champions had a chance to win the game in extra time when Mbappe hit the post from close range.
And they had the 20-year-old sent off two minutes from the end after a dangerous foul on the side of Damien da Silva's knee.
Just before the shootout, Nkunku, who has been linked with a move to Rennes this summer, replaced teenager Moussa Diaby - who had only been on the pitch for 15 minutes.
And after the first 11 players scored their penalties, the midfielder smashed a dreadful kick over the bar as mid-table Rennes won the cup for the third time in their history.
It was a first cup final defeat since 2011 for PSG, who had won five consecutive French League Cups before going out in the quarter-finals this year.
Source: bbc