Vettel, who had started on pole, hunted Bottas down in the latter part of the race.
Hamilton, who finished only fourth at the Russian Grand Prix as he mysteriously struggled for pace, was among the first to congratulate Bottas after he held off Ferrari's Sebastian Vettel to register his maiden win in Formula One.
"I can't explain it right now", the Briton, still second in the world championship but now 13 points behind Ferrari's Sebastian Vettel, told reporters.
Sad to say, it appears that Sochi 2017 can be added to the list, the Briton suffering a hard weekend that while leaving him 13 points adrift of his championship rival Sebastian Vettel, also witnessed Mercedes teammate Valtteri Bottas' first win, leaving the Finn just 10 points adrift of the three-time world champion and stifling media calls for team orders. It was a unusual opportunity for me to join this team and they (Mercedes) made it possible, so I would like to thank them and the team, it would have not been possible. We have had a tricky beginning of the year, and today it was very close. "I'm happy with my performance, happy with my result, and we need to keep doing and working like that".
Much depended on the start in a race that was going to feature just a single pit stop for the frontrunners, and Bottas made a flier.
Four cars failed to even make it lap seven.
But the win by Bottas nearly wasn't, as Vettel returned to the race after a pit stop on lap 34, coming out just five seconds behind and started to eat in to Mercedes lead, and with just a few laps to go Vettel was just a second behind.
The Sochi Autodrom has known nothing but Mercedes victories since it began hosting the Russian Grand Prix in 2014.
Considering it was a great day for Bottas, it was not for Fernando Alonso. Both cars were damaged in the accident at Turn Two and were out of the race with both drivers climbing out undamaged from the debris.
Valtteri Bottas' win at Sochi rescued Mercedes after Ferrari dominated qualifying proved already that he is likely to be just as formidable a team-mate as Nico Rosberg to three-time champion Lewis Hamilton.
Red Bull's Dutch teenager Max Verstappen finished fifth with Sergio Perez chalking up his 14th successive points finish for Force India and French team mate Esteban Ocon seventh.
"I've never seen anyone like him, under this pressure, win his first grand prix".
"Normally starting from the second row is not too bad, but I had a good start, if anything slightly better than the guys in front". "He controlled the race perfectly: a great start, then a ideal restart after the Safety Car and a fantastic first stint where he built the gap on the Ultrasoft".