The South American heavyweights arrived in Tokyo fresh off a 5-1 thrashing of South Korea in Seoul last week, but Japan proved a tougher nut to crack in front of a full house at the Olympic stadium.
The home side kept Brazil in check until Wataru Endo tripped substitute Richarlison in the box, and Neymar stepped up to send goalkeeper Shuichi Gonda the wrong way from the spot.
Neymar’s goal took him to 74 for his country, just three short of the legendary Pele’s all-time record of goals for Brazil.
Lucas Paqueta gave Japan a taste of what they were up against when he hit the post as early as the second minute, following a cheeky back-heel flick from Neymar.
The home side steadied the ship and began to create chances of their own, with platinum blond winger Junya Ito causing problems down Brazil’s left flank.
Japan’s goalkeeper kept out Raphinha before pulling off another good save from a booming Neymar shot, as Brazil turned the screw midway through the first half.
Japan gave away a series of free kicks around their own box but a Raphinha curler that flashed just wide was the best Brazil could do before the half-time whistle.
Brazil continued pressing for an opener after the break, with Eder Militao just failing to prod home the ball with Japan’s defence exposed.
Brazil manager Tite brought on Gabriel Jesus and Gabriel Martinelli midway through the second half in a bid to freshen up his attack.
Richarlison also entered the fray soon after, and the Everton forward quickly made an impact when Endo brought him down for a penalty.
Neymar scored from the spot to add to the brace he claimed against South Korea last week.
Japan substitute Kaoru Mitoma gave Brazil a late scare when he went down in the box late in the game, but the referee waved play on and Brazil held on for the win.