Mediauppspelning stöds inte på den här enheten
Värdarna återhämtade sig från Guilhem Guirados tidiga försök att leda 18-5 efter Stuart Hogg och Duncan Taylor försöker, den senare en fantastisk individuell ansträngning.
Gael Fickous poäng minskade Frankrikes halvtid underskott, och två Maxime Machenaud straff gjorde det 21-18.
Men Hoggs lysande overheadpass såg Tim Visser försöka säkra segern.
Greig Laidlaws straff med fem minuter kvar gav ytterligare glans åt en hänförande seger, deras första över Frankrike sedan 2006.
Det slutade också en demoraliserande sekvens av sju raka hem Sex nationer nederlag vid Murrayfield över tre år sedan Irland slogs 2013.
Skottlands seger bekräftade England, som slog Wales på lördag för sin fjärde raka seger, som Six Nations mästare, första gången titeln har beslutats med en runda att gå.
Scotsen kan ha börjat ljust, förtroende bojkottas av deras 36-20 seger i Rom för fjorton dagar sedan, men deras fart kontrollerades inom fem minuter.
Frankrike satte Murrayfield ljus med en del av stilen som verkade ha försvunnit från deras spel, vilket resulterade i ett försök för deras beundransvärda kapten Guirado.
Horan ställde Virimi Vakatawa bort till höger, och efter vingen halkade bollen inuti till Wesley Fofana, var Guirado där för att samla poäng pass och störta över.
Fly-halv Francois Trinh-Duc, när han återvände till sidan, missade omvandlingen från en bred vinkel, och sedan vad som borde ha varit ett enkelt straffförsök.
Så i stället för en 10-0 underskott, inom fem minuter Skottland hade vänt spelet på huvudet med två Laidlaw straff, den andra intjänade av en scrummage som fortsatte att ge näring.
Det var ett beundransvärt svar efter att ha förlorat Finn Russell vid en huvudknackning - den flyga-halvkolliderade med flankern John Barclays utsträckta ben - i uppbyggnaden av Frankrikes försök.
Men Russells ersättare Peter Horne klev in i sprickan utmärkt, och hans halv-break och offload till Richie Gray efter ett dussin faser tillät Hogg att darta över i 33: e minuten.
Inom fyra minuter. Murrayfield var på fötter igen efter en fantastisk solo poäng från Taylor.
När Saracens centrum tog en snabb påtryckning 10 meter innanför sin egen hälft, skyndade det upp rätt touchline, bulldozing genom försöken till tackling av Vakatawa.
När rymden öppnades framför honom, körde den 26-årige på och undvek Wenceslas Lauret innan han rörde sig ner för ett dundrande försök.
Domare Glen Jackson konsulterade en TV-repris efter en misstanke om att Laidlaw hade hindrat Lauret med en bogsering av hans skjorta, men var nöjd med att fransmannens momentum inte hade kontrollerats.
Laidlaw lade till konverteringen för en 18-5 bly, men ett straff som Barclay medgav med två minuter av den halva vänster tillät Frankrike att slå tillbaka.
Besökarna sparkade straff för att röra på höger flank, lanserade en line-out drive och flera faser senare, Fickou skar sig igenom i det vänstra hörnet.
Machenaud, tog över sparkar arbetsuppgifter från Trinh-Duc, gjorde det till en sex poängs match i intervallet.
Hoggs monster 54-meters straff tidigt under andra halvan gjorde det 21-12, men två Machenaud straff minskade gapet till tre punkter på väg in i det sista kvartalet.
Spänningen lyftes dock i 66: e minuten efter tjurning laddningar från Alex Dunbar, Richie Gray och Willem Nel tog Skottland till inom inches av den franska linjen.
Laidlaws långa pass såg på spekulativ sida, men Hogg slog bollen över huvudet när han reste sig för att möta det, vilket ger Visser den enkla uppgiften att dyka över för hans 11: e Test försök.
Laidlaw kunde inte landa konverteringen från bred ut på peklinjen, men gjorde inga misstag med en straff fem minuter från tiden för att kick-start Murrayfield firandet.
Stuart Hogg var en ständig fara med bollen i handen, gjorde Skottlands första försök, slog över en straff från 54 meter och hans magiska overhead pass för Visser försök förutsatt spelets enastående ögonblick.
Skottland: Hogg, Seymour, Taylor, Dunbar, Visser, Russell, Laidlaw; Dickinson, Ford, Nel, R. Gray, J. Gray, Barclay, Hardie, Strauss.
Ersättningar: Horne (för Russell, 5), Wilson (för Strauss, 62), McInally (för Ford, 67), Low (för Nel, 73), Swinson (för R Gray, 77).
Ej använd: Sutherland, Hidalgo-Clyne, Lamont.
Frankrike: Spedding, Fofana, Fickou, Mermoz, Vakatawa, Trinh-Duc, Machenaud; Poirot, Guirado, Slimani, Flanquart, Maestri, Camara, Lauret, Chouly.
Ersättningar: Chatt (för Guirado, 70), Pelo (för Poirot, 62), Atonio (för Slimani, 62), Vahaamahina (för Flanquart, 51), Goujon (för Camara, 64), Bezy (för Machenaud, 74), Plisson (för Trinh-Duc, 68), Medard (för Mermoz, 68).
Domare: Glen Jackson (Nya Zeeland)
Skottland avslutade en tioårig winless strimma mot Frankrike för att spela back-to-back Six Nations segrar för första gången på tre år.