Arsenal's Cesc Fabregas was the driving force behind the win after coming on as substitute for injured David Villa.
Xavi turned home Andres Iniesta's cross after 50 minutes and substitute Daniel Guiza converted a superb pass from Fabregas with 17 minutes left.
Fabregas played in David Silva for a simple third after 82 minutes as a disappointing Russia ended well beaten.
The only cloud on Spain's horizon was the first-half injury to Villa, who will now miss the final clash with Germany in Vienna.
606: DEBATE FB |
Russia never threatened to produce the attacking firepower that saw them dump out Holland in the last eight, and playmaker Andrei Arshavin was an anonymous figure throughout.
Arshavin entered the game with a huge weight of expectation on his shoulders, as well as transfer interest from Barcelona, but failed to deliver.
Spain were outstanding as they inflicted another heavy defeat on Guus Hiddink's side, as they had done in the group stages and were rarely under pressure.
Veteran coach Luis Aragones now looks to have put together a side capable of ending the years of under-achievement, even making light of that injury to the influential Villa.
Spain made a positive start, with the partnership of Villa and Torres demonstrating their threat early on.
Villa slipped in Torres for a shot that was saved by Igor Akinfeev, then forced the Russia keeper into a smart save down at his post with a long-range drive.