The Six Nations team raced out of the blocks with six tries in the first half before Russia, who celebrated their historic first ever World Cup tries, recovered with a vastly improved second period.
The bonus-point win keeps Italy in the running for the quarter-finals despite their opening loss to Australia, with a crunch encounter with Ireland looming on October 2.
Italy's scrum savaged the Russian forwards in the first half and they capitalised on a host of errors as captain Sergio Parisse surged through a gap in the defence to open the scoring on six minutes.
Winger Giulio Toniolatti then scored twice in 10 minutes either side of a try by Tommaso Benvenuti, who pounced when a loose ball slid under the diving body of the last Russian defender.
Italy were awarded a penalty try when their forwards crushed the Russian scrum but they suffered a blow when Fabio Ongaro was sin-binned for a thumping, shoulder-first collision which laid out full-back Igor Klyuchnikov.
And Russia took full advantage when replacement scrum-half Alexander Yanyushkin darted through for an unorthodox, over-the-head score after landing on his back in the tackle -- the country's first ever try at the World Cup.
Gori crossed just before half-time to make it 38-7 at the break and Benvenuti grabbed his second eight minutes into the second period, but Russia were not done and Vladimir Ostroushko motored over on the right to keep the scores at 43-12.
Australian-born Luke McLean got Italy's eighth try on 64 minutes but Alexey Makovetskiy received a looping cut-out pass in acres of space on the right to raise Russian hopes of a bonus-point fourth try.
However it was Italy who would have the final say when flanker Alessandro Zanni flattened two defenders to score in the 75th minute.
Italy have never reached the World Cup quarter-finals in six previous attempts. Their largest victory before Tuesday had been their 31-5 win over Portugal in 2007.
Italy now play the United States next week while Russia face Ireland on Sunday.
TeamsItaly:
15 Andrea Masi, 14 Giulio Toniolatti, 13 Tommaso Benvenuti, 12 Matteo Pratichetti, 11 Luke McLean, 10 Riccardo Bocchino, 9 Edoardo Gori, 8 Sergio Parisse (captain), 7 Mauro Bergamasco, 6 Paul Derbyshire, 5 Marco Bortolami, 4 Quintin Geldenhuys, 3 Lorenzo Cittadini, 2 Fabio Ongaro, 1 Salvatore Perugini
Substitutes: 16 Tommaso D'Apice, 17 Martin Castrogiovanni, 18 Cornelius van Zyl, 19 Alessandro Zanni, 20 Pablo Canavosio, 21 Luciano Orquera, 22Alberto Sgarbi
Russia:
15 Igor Klyuchnikov, 14 Vasily Artemyev, 13 Andrey Kuzin, 12 Alexey Makovetskiy, 11 Vladimir Ostroushko, 10 Konstantin Rachkov, 9 Alexander Shakirov, 8 Victor Gresev, 7 Andrey Garbuzov, 6 Vyacheslav Grachev, 5 Adam Byrnes, 4 Alexander Voytov, 3 Ivan Prishchepenko, 2 Vladislav Korshunov (captain), 1 Vladimir Botvinnikov
Substitutes: 16 Valery Tsnobiladze, 17 Alexander Khrokin, 18 Denis Antonov, 19 Artem Fatakhov, 20 Alexander Yanyushkin, 21 Mikhail Sidorov, 22Yury Kushnarev