Host Brazil could only manage a disappointing 0-0 draw against South Africa as the men's soccer competition began at the Olympics on Thursday.
South Africa put an early scare into the hosts as Lebo Mothiba's third-minute shot was blocked by on-rushing keeper Weverton.
It was a frustrating first half for Brazil and its star forward Neymar, who twice saw South African keeper Itumeleng Khune tip 20-yard shots over the bar.
Brazil greatly controlled possession, but South Africa did have two early chances to score through Keagan Dolly and Mothiba early in the second half.
But South Africa's hopes at an upset win ended soon after when Mothobi Mvala picked up two yellow cards for a pair of fouls in quick succession and was sent off in the 59th minute.
Brazil nearly took the lead in the 69th minute when the ball trickled across the box to Gabriel Jesus, but the new Manchester City signing could only hit the outside of the post with the net gaping.
Neymar flashed a shot inches too high three minutes later, then played through Gabriel Barbosa, only for Khune to make another good save.
Deep into stoppage time, Khune handled a low shot from Neymar as the hosts failed to find a breakthrough and were booed off the field by their fans in Brasilia.
"We had the best chances but the ball didn't go in," Brazil coach Rogerio Micale said. "And we also have to give credit to South Africa, which has a very determined team and made it difficult for us to impose our game."
Mexico 2, Germany 2
Germany twice answered second-half goals from Mexico as the teams settled for a 2-2 draw in Group C.
Hirving Lozano had two golden opportunites to give Mexico the lead in the first half, but there were no goals until after halftime.
Oribe Peralta opened the scoring in the 52nd minute by heading home Michael Perez's cross from a corner.
But Germany were back level six minute later when Serge Gnabry, who had just missed a clear header, was able to score after receiving Niklas Sule's through ball.
Germany thought they had the lead moments later, but Davie Selke's goal was ruled out for a handball in the buildup.
And seconds later Mexico were again in front when Marco Bueno struck the crossbar and the ball fell for Rodolfo Pizarro to score.
But again Germany were able to equalize when Matthias Ginter headed home from Julian Brandt's corner in the 78th minute.
Portugal 2, Argentina 0
Portugal handed Group D favorite Argentina its first loss at the Olympics in 20 years.
Jonathan Calleri nearly gave Argentina the lead just after half-time when his chipped shot on the counter-attack hit the crossbar.
But it was Portugal that opened the scoring in the 66th minute when Goncalo Paciencia tucked a low shot from the top of the box into the far corner.
Pite Trabulo added a second goal in the 84th minute when Argentina keeper Geronimo Rulli allowed the ball to slip through his legs.
After earning the silver medal in Atlanta in 1996, Argentina failed to qualify in 2000, then won gold in 2004 and 2008, then again missed the tournament in 2012.
Honduras 3, Algeria 2
Honduras held off a late comeback to win the opening game in Group D.
Anthony Lozano beat the offside trap to go through on goal in the 13th minute, and though his shot was cleared off the line, it fell for Romell Quioto to open the scoring.
Algeria lost their captain Ryad Keniche to injury after a half-hour and it got worse for the African team three minutes later when Marcelo Pereira doubled Honduras' lead with a looping header.
Algeria got a goal back with Sofiane Bendebka's 68th minute header, but Honduras restored the two-goal advantage when Algeria keeper Farid Chaal spilled a simple cross and Lozano was on hand to tap in.
With five minutes left, Algeria cut it to 3-2 with a Baghdad Bounedjah header, and Algeria nearly had an equalizer, only for Oussama Darfalou to head over the bar from four yards out.
Sweden 2, Colombia 2
In Group B, a late Dorlan Pabon penalty allowed Colombia to salvage a draw with Sweden.
Teo Gutierrez raced onto a through ball and slotted home from just inside the corner of the box to give Colombia the lead, but Mikael Ishak equalized for Sweden before half-time with a powerful 25-yard blast into the top corner.
And Sweden took the lead after the hour mark when Colombia keeper Cristian Bonilla could only parry Robin Quaison's shot into the path of Astrit Ajdarevic.
But Colombia levelled the score in the 75th minute when Joakim Nilsson was whistled for handling the ball in the box, and Pabon converted the penalty.
Substitute Harold Preciado nearly found a winner in the final stages but his shot under pressure was saved.
Denmark 0, Iraq 0
Denmark and Iraq opened the men's competition with a goalless draw in Group A, leaving all four teams with a single point after Brazil's draw.
With Denmark content to play for a draw, substitute Mohannad Abdul-Rahim nearly sparked Iraq to victory, but he could not find a winner.
South Korea 8, Fiji 0
South Korea began their Group D campaign with an overwhelming 8-0 victory over minnows Fiji.
Ryu Seung-Woo found the breakthrough in the 32nd-minute, and though the Moon Chang-Jin missed a penalty the Koreans were easily in control by halftime.
The floodgates would open in the second half, with a three-goal flurry starting in the 62nd minute that included two strikes within two minutes from Kwon Chang-Hoon.
Tottenham Hotspur Son Heung-Min made it 5-0 from the penalty spot in the 72nd minute before Ryu scored two more to complete his hat trick for the match.
Nigeria 5, Japan 4
Nigeria ran out 5-4 winners in a thrilling opener against Japan, as Oghenekaro Etebo scored four goals to lead his team to the Group B victory.
The Nigerian team showed no signs of wear and tear after a flight delay in the United States nearly jeopardized their chances of making it to the match, taking an early lead after Japan keeper Masatoshi Kushibiki parried a shot into the path of Sadiq Umar who tapped in.
Japan struck right back from the penalty spot after Takumi Minamino was fouled in the area and Shinzo Kohrokito stepped up to convert to make it 1-1 in the ninth minute.
Minutes later Abdullahi Shehu's high cross found Etebo in the penalty area, who settled with what looked like a possible hand ball and then fired in Nigeria's second at the far post.
The lead once again lasted less than a minute after Takumi Minamino picked up a brilliant through ball and was in on goal to give Japan their second and level the score at 2-2.
Things settled down after that until the end of the first half when a goalmouth scramble led to Nigeria's third goal as the ball fell once again to Etebo, who volleyed home to send it to the break at 3-2.
The second half started horribly for Japan, as Umar forced a turnover in Japan's end and was taken down by Tsukasa Shiotani in the area and the referee pointed to the spot. Etebo stepped up and coolly slotted home to make it 4-2 and complete his hat trick.
Etebo wasn't done yet and his fourth looked to put the match out of reach when he volleyed home a long rebound from 30 yards out seemingly sealed the fate of the Japanese.
However, goals from Arsenal recruit Takuma Asano and fellow substitute Musashi Suzuki almost had Japan back in the game, but the Samurai Blue ran out of time as Nigeria held on for the win.