Hours later Italy stunned England for the first time.
France’s match next weekend kicks off several hours after the Ireland-Scotland encounter so Les Bleus will know what they need to do.
Scotland have never finished higher than third in the Six Nations era and were last crowned kings of European rugby union when they won the last Five Nations in 1999.
That Scotland have a shot at the title represents a remarkable turnaround for a side who started this Six Nations with a lacklustre loss to Italy in Rome before beating England and edging out Wales.
Both Scotland coach Gregor Townsend and skipper Sione Tuipulotu had emphasised in the build-up the importance of making France feel “uncomfortable”.
The hosts did just that by opening the scoring through Graham’s fifth-minute try.
Scotland centre Huw Jones made a break and although Finn Russell fumbled the ball, it went backwards, and the first five-eighths released Graham for a score that meant the wing stood alone as Scotland’s leading try-scorer with 36.
France levelled the game at 7-7 in the 18th minute.
Antoine Dupont ripped the ball from Tuipulotu before finding wing Louis Bielle-Biarrey, who extended his own record by scoring a try in a ninth consecutive Six Nations match.
Fullback Thomas Ramos added a conversion from out wide.
Four minutes later, France were ahead when Theo Attissogbe, coming across from the right wing, ran on to Bielle-Biarrey’s grubber kick.
Scotland responded, George Turner broke from a lineout and passed to Steyn, running a superb line in the opposite direction.
Russell missed the conversion but Scotland regained the lead when, after a series of drives near the French line, prop Pierre Schoeman powered over for a 32nd-minute try.
Russell landed the conversion to leave Scotland 19-14 ahead at halftime, with France reduced to 14 men after first five-eighths Matthieu Jalibert was sin-binned.
Scotland’s sense of adventure was rewarded in the 44th minute after the side declined a kickable penalty in favour of an attacking lineout.
Halfback Ben White, who plays his club rugby in France for Toulon, scored a bonus-point try from a sniping break as France centre Yoram Moefana carelessly turned his back.
Dupont then threw a loose pass straight to Steyn, who sprinted away to score. Scotland added another try when Graham raced clear and went in between the posts.
After Dupont’s reckless forward pass behind his own tryline, Tuipulotu put replacement back Tom Jordan in for Scotland’s seventh try in the 63rd minute. Russell kicked his sixth conversion for a 47-14 lead.
Dupont finished a brilliant length-of-the-field move three minutes later and France grabbed what could prove an important bonus point when Ramos went over six minutes from time.
Oscar Jegou and Ramos again added two more tries in a breathless finale.