In his 50th match with Brazil, the 22-year-old forward scored a goal in each half to help the hosts survive an early scare and escape disaster in front of a packed Itaquerao Stadium after Croatia had taken an early lead.
Marcelo found his own net while trying to clear a low cross by Ivica Olic in the 11th minute, but Neymar then showed why the nation’s high hopes are all pinned on him.
He equalized in the 29th minute, clearing a defender in midfield before making a run toward the edge of the area and firing a perfectly placed low shot that went in off the post.
The game turned on a controversial penalty awarded by Japanese referee Yuichi Nishimura in the 71st minute when striker Fred went down inside the area under minimal contact from defender Dejan Lovren.
Neymar scored from the spot for his 33rd goal with Brazil. The Barcelona star got a standing ovation when he was substituted near the end of the match.
“It’s important to start these tournaments with the right foot, with a victory,” Neymar said. “I’m happy that I got to score, but the entire team deserves credit. We maintained our calm and showed we could battle back.”
The Croatians were furious.
“If that was a penalty, we should be playing basketball. Those kinds of fouls are penalized there,” Croatia coach Niko Kovac said.
“That is shameful, this is not a World Cup referee. He had one kind of criteria for them and another for us. The rules were not the same,” Kovac said.
As Croatia searched desperately for an equalizer, Oscar added to the lead in the first minute of injury time with a toe poke from just outside the penalty area.
Croatia had a few good chances toward the end and had a goal disallowed in the 83rd after the referee ruled Olic had fouled Brazil goalkeeper Julio Cesar.
The host nation hasn’t lost the last nine times it played in the opening match. South Africa was held by Mexico to a 1-1 draw four years ago.
A draw would have been a huge disappointment for Brazil, which had won its opening match the last eight times. The five-time champion entered the home tournament having won 15 of its last 16 games, including five in last year’s Confederations Cup, the warm-up tournament it won. The team hadn’t been held to a draw in the opener since a 1-1 result against Sweden in the 1978 World Cup in Argentina.
“The team didn’t give up,” Brazil defender David Luiz said “We knew it would be hard but we played well and got that first goal and then the victory.”
The result kept Croatia without a win in its last five World Cup matches. Its last triumph was a 2-1 win over Italy in 2002. The Croats didn’t play in South Africa four years ago.
The tournament finally got underway as planned after months of talk about the preparation problems that plagued Brazil since it was picked as host seven years ago.
The troubled Itaquerao, which wasn’t fully finished for the opener, held up without major setbacks to fans or the match itself, although part of the lights atop the pitch went out a few times for brief periods in the first half.
Despite the support from most of the more than 62,100 fans in attendance, Brazil got off to a slow start and allowed Croatia to threaten early. It opened the scoring with one of its first chances as Marcelo failed to clear Olic’s cross. The ball was slightly redirected by striker Nikica Jelavic before the Brazilian defender touched it backward into the goal.
“I stayed calm because if I let myself get down I would have hurt the team,” Marcelo said. “It’s not the first time that this has happened, so you have to stay relaxed to help the team.”
The penalty kick was awarded when Fred appeared to be tugged inside the area by Lovren. The Croats insisted Fred wasn’t touched and at least five Croatian players swarmed around Nishimura of Japan to protest.
Neymar converted his shot from the spot even though Croatia goalkeeper Stipe Pletikosa touched the ball and nearly made the save.
Neymar had received a yellow card in the 27th for elbowing Real Madrid playmaker Luka Modric.
The other Group A match will be played between Mexico and Cameroon in Natal on Friday.