Wales winger David Brooks sealed a 1-0 Nations League win that left Republic of Ireland manager Stephen Kenny still waiting for his first win after seven games in charge.
Bournemouth’s Brooks struck in the second half at the rain-lashed Cardiff City Stadium as Wales won for the fourth time in their five group matches.
Ireland had Newcastle midfielder Jeff Hendrick sent off in stoppage-time for a foul on Tyler Roberts.
After a seventh successive clean-sheet in all competitions, Wales — unbeaten in their last 10 games — need a point on Wednesday against Finland to win their group and earn promotion to League A.
With boss Ryan Giggs absent again after his arrest on suspicion of assault, it was Robert Page who led Wales to victory.
Struggling Ireland need a point from their last game against Bulgaria to avoid relegation to League C.
That would be a new low for Kenny in a wretched reign since he succeeded Mick McCarthy.
Easily beaten 3-0 by England in a friendly on Thursday, Ireland offered more resistance this time but were toothless in attack.
Ireland went into the game without a goal in eight hours, but they put together a spell of pressure that saw Robbie Brady fire just over after Neco Williams could only half clear Daryl Horgan’s cross.
Brooks should have done better than shoot tamely at Darren Randolph after the Wales winger was gifted possession inside the Ireland penalty area.
Back after being rested for the friendly draw against the United States on Thursday, Wales captain Gareth Bale nearly caught out Randolph with a fierce free-kick from 35 yards that forced a good save from the Ireland keeper.
Brady picked out James McClean for a strike from a tight angle that Danny Ward saved with his feet.
Wales striker Kiefer Moore was booked for diving in a failed attempt to win a penalty, but the hosts took the lead in the 66th minute.
When Shane Duffy could only half clear a cross from Daniel James, Bale nodded it back into the area and Brooks headed home from close-range.
It was only Wales’ second goal in five matches in all competitions.
James Collins drilled a 76th-minute shot straight at Ward before James sent Brooks through on goal, only for Randolph to win the duel.