Spain produced a superb display to cruise past Russia and set up a Euro 2008 final against Germany on Sunday.
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.
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.Russia's only early effort was a free-kick from Roman Pavlyuchenko that was off target as Spain dominated territory and possession.
Villa fired in another free-kick that was saved by Akinfeev after 28 minutes, but appeared to injure himself and limped off shortly afterwards, to be replaced by Fabregas.
It was a pivotal moment, with Fabregas more than compensating for the departure of Villa by delivered a midfield master-class.
Spain took a fully-deserved lead after 50 minutes when Xavi arrived to perfection to slide home Iniesta's driven cross.
Fabregas was pulling the strings, first setting up Torres for a shot that the Liverpool striker curled off target.
Torres then slid another glorious chance wide after a fine run and cross from Sergio Ramos in what was his final contribution of a tireless performance.
He was replaced by Guiza, with Liverpool team-mate Xabi Alonso coming on for goalscorer Xavi.
And Guiza showed his prowess as a finisher when he scored Spain's second after 73 minutes, lifting Fabregas's superb pass over Akinfeev.
Fabregas was running the game, and he produced another piece of superb creation to set up Silva for a precise finish with eight minutes left.
Spain keeper Iker Casillas was finally forced into action with three minutes remaining, saving superbly from Dmitry Sychev's header.
But it was a minor interruption to Spain's path into the final, and Akinfeev had to save well from Guiza as they threatened to make their victory margin more convincing.
Russia: Akinfeev, Aniukov, Vasili Berezutsky, Ignashevich, Zhirkov, Semak, Zyryanov, Semshov (Bilyaletdinov 56), Saenko (Sychev 57), Pavluchenko, Arshavin.
Subs Not Used: Gabulov, Malafeev, Yanbaev, Alexei Berezutsky, Adamov, Ivanov, Shirokov, Bystrov.
Booked: Zhirkov, Bilyaletdinov.
Spain: Casillas, Sergio Ramos, Marchena, Puyol, Capdevila, Iniesta, Xavi (Alonso 69), Senna, Silva, Villa (Fabregas 34), Torres (Guiza 69).
Subs Not Used: Palop, Reina, Albiol, Fernando Navarro, Santi Cazorla, Sergio Garcia, Arbeloa, Juanito, De la Red.
Goals: Xavi 50, Guiza 73, Silva 82.
Ref: Frank De Bleeckere (Belgium).