Swansea City's James scored from the spot in stoppage time after he was brought down by Hamad Alshamsan, who received a second yellow card.
Rob Page's side, who drew 0-0 with hosts France in their opening game, face Ivory Coast in their final Group B game on Monday, 5 June.
The three group winners progress automatically into the semi finals.
The best second placed team will take the remaining spot.
Wales: Pilling, Lewis, Rodon (captain), Harries, Dasilva, J. Evans, Poole, G. Thomas, James, Broadhead, Harris.
Subs: L. Thomas, Abbruzzese, Coxe, Mepham, Ovenden, K. Evans, Humphries, Cullen, Roberts.
Daniel James' late penalty saw Wales Under-20s beat Bahrain and secure a first win in the Toulon Tournament.