"That day [against Spain] we fell into the big trap of giving gifts to our opponents, but after a couple of analytical sessions, then work in training, everything was fixed," said Russian coach Guus Hiddink.
Russia won its remaining two group games to qualify from Group D behind Spain.
Another important factor in Russia's turnaround was the return of midfield playmaker Andrei Arshavin. The 27-year-old missed the first two group games due to suspension, having received a red card in Russia's final qualifying game, against Andorra.
His return to the squad gave the Russians an attacking edge that delivered a 2-0 win over Sweden and a thoroughly deserved 3-1 overtime victory over the heavily favored Dutch.
"I've played better games, so many times," Arshavin said. "It's just that the team is winning. I'm not doing anything out of the ordinary. Sometimes I score, sometimes I provide a pass."
Spanish coach Luis Aragones praised the Russians' tenacity.
"I believe that they are physically better than any other team in the competition," he said.
Aragones indicated that he would name an unchanged squad and would not drastically alter his side's tactics to contain Arshavin.
"No we're not going to change ... if it's not broken don't fix it," he said. "We have to work very hard, put in a big effort, but we'll make it to the final."
Spain enters the game as favorites and will look to forward pair Villa and Fernando Torres to break down a Russian defense that will be missing suspended central defender Denis Kolodin. Russian midfielder Dmitri Torbinski will also miss out through suspension.
Russia is hoping to return to the European Championship final for the first time since 1988, when, as the Soviet Union, it lost 2-0 to the Netherlands.
The Soviet Union's lone tournament triumph came in 1960 when it defeated Yugoslavia, 2-1.
Spain has not been in a final since losing 2-0 to France in 1984. Spain's only major title came in 1964 when it defeated the Soviet Union 2-1 the European Championship final.