Monaco led the German goal by Kevin Volland in the 25th minute, but Memphis Depay tied for Lyon in the 57th minute.
The 70th minute saw Maxense Caquetia, the Lyon player, get a second yellow card, leaving the stadium fired and leaving his team-mates with a numerical shortage.
This shortfall did not prevent Lyon from taking the lead for the first time in the 77th minute, through Brazilian defender Marcelo.
The excitement reached its peak when Wissam Ben Yedder equalized for Monaco in the 86th minute with a penalty kick.
But young Ryan Sharqi killed the hopes of the emirate club with a thunderbolt in the 89th minute.
Lyon raises its score to 70 points in fourth place, and Monaco is frozen at 71 points in third place.
Monaco is away from league leaders Lille by 6 points, 3 rounds to the end, and 5 points away from Paris Saint-Germain II.
Monaco needs to cling to the third place being contested by Lyon, as its owner qualifies for the Champions League.
Sharqi (17 years and 258 days) became the youngest player to score a goal for Lyon in the French League since 1969, when Bernard Lacombe scored at the age of 17 years and 114 days at the time.
While Ben Yedder reached his 100th goal in his French League career.
After the end of the match, a huge quarrel between the players led to the expulsion of Mattia de Sciglio and Marcelo from the ranks of Lyon, William Gebels and Pietro Pellegri from the ranks of Monaco, bringing the total of those expelled to 5 in the meeting.