An uncharacteristically attacking Bosnia & Herzegovina caused Wales some first-half problems especially with a couple of errors from goalkeeper Laura O’Sulllivan, while the hosts were generally limited to shots from distance.
In the opening seconds, Sophie Ingle had to prevent Merjema Medić getting a shot on goal from close range, while another early worry for the Welsh came when Jess Fishlock caught a defender’s studs on her knee – but she was able to continue.
Rhiannon Roberts had a back-post header from a free kick caught by Envera Hasanbegović and Medić’s well-struck 25-yard effort was comfortable for O’Sullivan.
Natasha Harding’s strike from outside the box also forced a save and a first chance inside the area saw Green unable to get a header on target from a Roberts cross.
Hayley Ladd had to recover fast from an untimely slip to prevent a shot at goal from Medić but the last action of the half saw Fishlock charge through the defence only to be denied by the legs of Envera Hasanbegović.
The first real action of the second half saw Ingle play in Helen Ward whose cross was dealt with well by Antonela Radeljić under pressure from Fishlock.
After a couple of corners, Ward won a penalty when brought down by Melisa Hasanbegović but when the forward stepped her spot-kick was saved.
Kayleigh Green broke the deadlock for a now dominant Wales on 61 minutes, firing home after Ward glanced a header into her path.
A dangerous Fishlock delivery was punched away by the Bosnia keeper and O’Sullivan then did similarly at the other end from a corner kick.
Roberts got on the end of a late corner but the ball only came off her shoulder for the keeper to catch.
Bosnia finished stronger as Wales conceded two free kicks in added time but O’Sullivan got away with a rash charge off her line and Ingle made a crucial tackle.
Jayne Ludlow’s side next host Russia at Newport County FC on Tuesday 12th June, before the likely group decider at home to England in August.
Wales: 1 Laura O’Sullivan, 2 Loren Dykes, 4 Sophie Ingle (C), 5 Rhiannon Roberts, 7 Natasha Harding, 8 Angharad James, 9 Kayleigh Green, 10 Jessica Fishlock, 13 Rachel Rowe, 14 Hayley Ladd, 20 Helen Ward (11 Nadia Lawrence, 89mins)
Unused Subs: 13 Claire Skinner, 6 Alice Griffiths, 15 Elise Hughes, 16 Kylie Nolan, 19 Hannah Miles, 3 Gemma Evans
Bosnia & Herzegovina: 1 Envera Hasanbegović, 2 Valentina Šakotić, 3 Antonela Radeljić, 5 Melisa Hasanbegović, 7 Merjema Medić (13 Marina Lukic, 46mins), 8 Aida Hadžić, 9 Milena Nikolić (C), 10 Alisa Spahić (6 Zerina Piskić, 60mins), 11 Lidija Kuliš, 14 Selma Kapetanović (15 Alma Kamerić, 72mins), 17 Amela Kršo.
Unused Subs: 12 Jelena Gvozderac, 16 Azra Hamzić, 19 Aldina Hamzić, 18 Ena Taslidža