In the second round of group matches, host Britain got its campaign back on track with a 3-1 victory over United Arab Emirates that knocked the Middle Eastern team out of the tournament. Mexico rebounded from a first-round loss by beating Gabon 2-0. Two-time Olympic champion Uruguay lost 2-0 to Senegal. Egypt played a to 1-1 draw against New Zealand, while South Korea beat Switzerland 2-1.
Spain was looking to add an Olympic gold to the World Cup and European Championship titles held by the country's full national team. The Olympic football tournament is an under-23 competition with three older players allowed in each 18-man squad.
But after losing to Japan in its opening game, Spain endured a second straight disappointment.
Honduras forward Jerry Bengtson scored in the seventh minute, jumping over a defender to power in a header past Spain goalkeeper David De Gea. Spain was seen as one of the favourites, but has yet to score in the competition ahead of its last game against Morocco on Wednesday in Manchester.
Honduras moved into second place in Group D.
Brazil, seeking its first Olympic gold, went behind in the eighth minute against Belarus, but Alexandre Pato equalized with a header in the 15th after a cross by Neymar. The Brazilian star then scored with a right-foot shot in the 65th minute and set up the final goal for recently signed Chelsea playmaker Oscar in injury time to make it 3-1.
"I'm so glad that we won the game," Neymar said. "We played very well in the second half and now we are another step closer. It was very hard for us against a good Belarus team."
The victory in front of 66,000 people at Manchester's Old Trafford Stadium gave Brazil six points in Group C, three more than Belarus.
Japan forward Kensuke Nagai scored an 84th-minute goal to secure a 1-0 win over Morocco.
Morocco had a late chance to equalize, but forward Zakaria Labyad's shot from close range was blocked by Japan goalkeeper Shuichi Gonda in stoppage time.
Japan tops Group D with six points, while Morocco has one point in third place.
Britain needed a win after drawing its first match against Senegal, and got off to a good start when captain Ryan Giggs headed in a cross by fellow Welshman Craig Bellamy on 16 minutes.
Rashed Eisa nearly spoiled the party for the 82,239 fans at Wembley Stadium with an equalizer on the hour mark. But Giggs' replacement Scott Sinclair scored in the 73rd before Daniel Sturridge's perfect lob capped a win in a match watched by Prince William and David Beckham.
The win means Britain will progress if it doesn't loose against Uruguay in its next match on Wednesday in Cardiff.
Mexican substitute Giovani Dos Santos scored twice in the second half to give the South Americans their victory in Coventry. The win puts Mexico top of Group B with four points, while Gabon has one. The top two teams in each of the four groups advance.
Uruguay's loss was its first in Olympic competition and leaves it on three points with one game to go.
Senegal's Moussa Konate scored two first-half goals in the victory that gives it four points, level with Britain. Konate has scored three goals in the tournament so far for Olympic debutante Senegal.
New Zealand forward Chris Wood opened the scoring from just in front of the goal on the 17th minute, and Egypt forward Mohamed Salah equalized following a counterattack in the 40th. Both teams had great chances at the end but couldn't capitalize on them.
The teams now have one point each after two rounds, so must win their next matches to have any chance of progressing. New Zealand will next face Brazil and Egypt will play Belarus.
Arsenal striker Park Chu-young scored the opener with a diving header as South Korea defeated Switzerland.
Innocent Emeghara pulled one back for the Swiss in the 60th but Kim Bok-yung got the decisive goal for South Korea three minutes later.
The South Koreans are now second in Group B, behind Mexico on goal difference.
Switzerland is in third position with one point, ahead of Gabon on goal difference.