Chris Coleman's side saw plenty of the ball throughout the contest, but lacked a cutting edge in the final third on their way to defeat in their last match before both sides' squads for this summer's tournament are chosen.
© Getty Images
Wales enjoyed the better of things during the opening exchanges, but chances were few and far between for both sides in a tight first half and the visitors were limited to seeing a Tom Lawrence strike tipped over from inside the box.
Even so, the opening goal came against the run of play for the home side as Wales failed to track Yarmolenko's run from a Ruslan Rotan free kick, allowing the attacker to fire a smart first-time finish past Wayne Hennessey on the turn.
Wales continued to see more of the ball without being able to conjure up a chance as Ukraine committed a number of fouls to disrupt the visitors' rhythm.
© Getty Images
There was more attacking intent on show in the second half, though, with Yarmolenko coming close to doubling his personal tally when he fired a long-range strike a few yards over the crossbar.
Joe Allen had a swerving effort from distance himself moments later that Andriy Pyatov was forced to punch clear, before Oleksandr Kucher glanced a header narrowly past the far post from another Rotan free kick.
Another half-chance arrived for the visitors just past the hour mark when James Chester climbed highest at the back post to meet an Allen cross, but he could not get enough on his header to trouble the keeper.
Ukraine continued to defend stubbornly as Wales pushed for an equaliser, with Sam Vokes nodding wide of the target with one of the few half-chances the visitors created.
Pyatov was called upon twice in quick succession in stoppage time, however, as first Ashley Richards saw a low strike turned wide at the near post before debutant Tom Bradshaw was denied by the keeper from the resulting corner.
The hosts held out for the win to extend their unbeaten record in home friendlies to 14 matches, though, while Wales are still without an away friendly victory since November 2008.