The 27-year-old Finn joined Mercedes after last year's champion, Nico Rosberg, surprisingly announced his retirement.
"There was this strange opportunity that happened in the winter that made this possible," Bottas said. "You never know in life what's going to happen and it was a great opportunity."
Vettel, who had started on pole, hunted Bottas down in the latter part of the race. However, he was left fuming after his hopes of passing him on the last lap were dashed by having to lap the Williams of Felipe Massa. "What was that?" Vettel asked over the team radio in frustration that Massa hadn't moved out of his way swiftly enough, though the German was in conciliatory mood afterward.
"It doesn't matter," Vettel said of the incident with Massa. "This is the man of the race today, big congrats to Valtteri."
Vettel's second place meant the German extended his standings lead to 13 points over Mercedes driver Lewis Hamilton, who trailed in fourth after suffering overheating trouble. Bottas is third, 10 points further back.
It was a lonely race for Hamilton, who had large gaps with Raikkonen ahead and Max Verstappen behind.
"Why is my car overheating? We're out of the race now," Hamilton told his team on lap 16. The British driver never came close to third-placed Raikkonen, and the gap stood at more than 25 seconds at the checkered flag.
Since joining Mercedes, Bottas had been struggling to match the knowledge of the car and the team that Hamilton has built up over four seasons with Mercedes, including two titles.
Before the race, Bottas had faced questions over whether Mercedes would order him to let Hamilton through in order to boost the British driver's title chances against Vettel. His win shows it's not clear-cut who's better suited to take the fight to Ferrari.
"All the questions and all the speculation, No. 2 driver and so on, it doesn't get to me," Bottas said.
For Mercedes, the win is a strong response to Ferrari's good early-season pace following its winless 2016. Vettel may still lead the drivers' standings after two wins and two second places in the opening four races, but it's Mercedes on top by a point in the constructors' championship.
With Russian President Vladimir Putin looking on, Red Bull driver Verstappen claimed fifth, ahead of the Force Indias of Sergio Perez and Esteban Ocon. Eighth went to Renault's Nico Hulkenberg, with Massa and Toro Rosso's Carlos Sainz claiming the final points.
Red Bull's Daniel Ricciardo was the most notable retirement, parking his car on lap 6 after the right-rear brakes caught fire.
There was a safety-car stoppage after barely half a lap when Romain Grosjean's Haas hit the Renault of Jolyon Palmer on the inside of a right-hand bend, putting both cars into the wall. Bottas held on to his lead comfortably at the restart in a race with few overtaking opportunities.
McLaren's Fernando Alonso is still yet to reach the checkered flag this season after his car broke down on the formation lap.
- AP