Alonso jousted his way up from 11th on the starting grid to claim an emotional victory for the Spaniard in front of his home fans after pole sitter Sebastian Vettel's Red Bull stalled on the track midway through the race.
Kimi Raikkonen of Lotus finished second, while Schumacher sneaked onto the podium after Lewis Hamilton and Pastor Maldonado collided on the penultimate lap as they fought for third place.
"This race is probably the best victory I have ever felt," said Alonso, who cried on the podium as the Spanish national anthem was played. "In terms of emotions, nothing compares to this."
Vettel's Red Bull teammate Mark Webber also had a strong showing, working his way up all the way from 19th to finish fourth.
Alonso's 29th career victory lifted him into first place in the points standings, 10 points ahead of Webber, who passed Hamilton and Vettel.
Force India's Nico Hulkenberg came in fifth and Schumacher's Mercedes teammate Nico Rosberg finished sixth. Paul Di Resta of Force India, McLaren's Jenson Button, Sergio Perez of Sauber and Bruno Senna in his Williams completed the top 10.
Alonso clinched an unlikely victory by passing a number of drivers on Valencia's 5.4-kilometre (3.3-mile) street circuit notoriously tough for overtaking. Pole sitters had won three of the four previous races, and in 2009 the tight circuit that weaves through the America's Cup harbour didn't allow one single change in the order of cars from start to finish.
The 30-year-old Alonso said his emotions were magnified by the economic crisis that his country— and many of his fans— are going through.
"This is the best feeling of victory by far because of the whole situation in Spain," he said. "There are families who have made long trips to come here, they have slept in the car or caravan. ... Yesterday we didn't deliver what they were expecting, so today I think we paid back a little bit of the support they gave us with all the problems they are facing."
To sweeten the victory, Alonso saw both Hamilton and Vettel — his main rivals for the championship— fail to collect a single point.
After a poor qualifying session that left him out of the top 10, Alonso had said he had no chance at victory and had set a goal of simply getting as many points as possible.
But a combination of audacious driving and an eventful 57-lap race full of car trouble and crashes produced the most scintillating round of the already enthralling F1 season that had seen seven different winners in the first seven races.
"Sport is about that, up and downs. Yesterday, we had a sad moment but you can never give up," Alonso said. "In sport in general, but especially in Formula One, anything can happen."
Alonso had an excellent start on a set of fast soft tires, jumping three spots to eighth place by the second turn. He then made short order of Webber, Senna and Schumacher to go fourth behind Hamilton.
"We had an amazing race, an amazing start. I remember six or seven overtakings we had," Alonso said. "Today we had all the good factors and luck with us."
Even so, victory for Alonso looked more than unlikely as Vettel, who had won here from pole the past two years, opened up a 20-second lead.
But following the appearance of the safety car, his Red Bull, which had been running impeccably all weekend, suddenly stalled on lap 34 and left him stranded hopelessly while the pack rushed by with Alonso at the head.
"Obviously it is a shame. We are not sure what happened. It is frustrating, we were en route to win the race," Vettel said. "We had a mechanical problem. The failure is still not clear, the car switched off."
Romain Grosjean had manoeuvred to within two seconds of Alonso by lap 41 when his Lotus also sputtered to a stop, spoiling a shot at his first win.
With the French pilot out of the running, Hamilton found himself in second.
But the 2008 champion couldn't cut into Alonso's advantage, and as his pace faltered Raikkonen went by and Maldonado tried to follow. The two drivers collided, sending Hamilton's McLaren into the wall. Race stewards later ruled Maldonado to have been at fault and penalized him 20 seconds on his final time, knocking him out of the points.
"Big congratulations to Fernando. He did a great job today to come from all the way back in 11th," Hamilton said. "We lost some points today. Fortunately, however, a couple of other drivers fighting at the front also missed out, so it's not the end of the world. It just makes things a little bit tougher."
With the path clear, Schumacher slipped ahead to grab his first podium appearance since he returned to F1 in 2010 following a three-year hiatus for the seven-time champion.
"I didn't think about a podium, not even at the end of the race," said Schumacher. "At the end I asked the guys where we finished and the boys told me that's third. I can't believe that, I didn't expect it."
Sauber's Kamui Kobayashi and Jean-Eric Vergne of Toro Rosso also failed to finish, while Marussia driver Timo Glock didn't participate in the race because of a stomach illness that also kept him out of qualifying on Saturday.