The 17-year-old was all smiles after her total of 224.59 left her 5.48 points clear of South Korean silver medallist Kim. Italy's Carolina Kostner took bronze.
Wearing a sparkling smokey ash dress, she landed 11 jumps, including seven triples, to the stirring backdrop of 'Introduction and Rondo Capriccioso'.
Even before she had finished her final pose, the crowd erupted and were on their feet to show their appreciation of her performance.
"Today I realised that I really love what I do and I can skate very well," Sotnikova said.
The result left many neutrals scratching their heads about what exactly the judges saw, or rather did not see, as the Russian was the only one of the top three who had a snatched landing from the double loop at the end of her triple-double-double combination jump.
In contrast, Kim and Kostner both delivered a flawless display full of grace and beauty but in the eye of the judges at the Iceberg Skating Palace, they were no match for the Russian.
Kostner, decked out in an eye-catching sheer black, backless dress, beautifully executed every one of her 11 jumps to the haunting backdrop of the Ravel's Bolero that has long been a favourite with skaters.
Despite pulling off seven triples just like Sotnikova, and being neck-and-neck with the leading trio following Wednesday's short programme, the Italian still trailed the new champion by 7.86 points.
While a smiling Kostner took everything in her stride after finally winning an Olympic medal at her third attempt, Kim was left inconsolable when she left the 'kiss and cry' area and was seen sobbing against a wall backstage.