Kaoru Mitoma returned as Japan survived a second-half wobble to set up an Asian Cup quarter-final with Iran or Syria after a 3-1 win over Bahrain on Wednesday.
The four-time champions looked to be cruising in their last 16 game in Doha after goals either side of half-time from Ritsu Doan and Takefusa Kubo.
But an own goal from error-prone goalkeeper Zion Suzuki let Bahrain back in the game until Ayase Ueda restored Japan's cushion just under 10 minutes later.
It was Ueda's fourth goal of the tournament.
Japan were boosted by the return of Brighton winger Mitoma, who came off the bench in the second half to play his first game since injuring his ankle on December 21.
But questions remain for Hajime Moriyasu's side, who were the pre-tournament favourites but have yet to keep a clean sheet in four games in Qatar.
Japan came close to opening the scoring in the 10th minute when Ueda thumped a header towards goal from a corner, only for Bahrain goalkeeper Ebrahim Lutfallah to claw it away.
Bahrain also had chances to take the lead but it was Japan who struck first in the 31st minute.
Right-back Seiya Maikuma unleashed a shot from distance that cannoned against the post and Doan reacted fastest to stick home the rebound.
Japan were forced into a change when Celtic midfielder Reo Hatate went off injured five minutes later, with Hidemasa Morita coming on.
Kubo doubled Japan's lead in the 49th minute after a VAR goal check.
The Real Sociedad forward looked to be in an offside position when the ball broke loose to him in the box, but the final ball had come off a Bahrain defender.
What looked like being a stroll for Japan turned into a bad dream when Suzuki turned the ball into his own net in the 64th minute.
The 21-year-old, who has made a string of mistakes at the Asian Cup, misjudged a punch and got tangled up with Ueda to fumble the ball over the line.
Ueda calmed Japan's nerves in the 72nd minute when he drilled the ball home after a sweeping move forward.
Mitoma was involved in several late chances after coming on in the 68th minute, but could not get on the scoresheet.