Andriy Yarmolenko scored the opener and set up Roman Yaremchuk to make it 2-0 in a dominant first-half display from Andriy Shevchenko's side in Bucharest.
North Macedonia, beaten by Austria on matchday one, improved after the break and pulled a goal back through Ezgjan Alioski after the Leeds United man saw his penalty saved.
Ruslan Malinovskiy also erred from the spot, meaning as many have been missed at this tournament (four) as in the whole of Euro 2016, but it did not cost Ukraine an important three points in Group C.
Ukraine carried a threat from the off, Stole Dimitrievski saving from Malinovskiy and Yarmolenko, while Stefan Ristovski made a brilliant block on Yaremchuk.
The breakthrough came just before the half-hour mark, Yarmolenko finishing at the far post after Oleksandr Karavaev's inspired flick-on from Malinovskiy's corner.
It was 2-0 five minutes later, Yaremchuk slotting a cool finish past Dimitrievski after a clever first-time pass from Yarmolenko.
Goran Pandev produced a clever chipped finish but the goal was disallowed for offside, as North Macedonia ended the half without a shot on target.
However, it did halve the deficit 11 minutes after the restart, Alioski expertly finishing on the rebound after his penalty had been well saved by Georgi Bushchan.
Viktor Tsygankov studded a great chance wide barely five minutes after coming off the Ukraine bench, and Malinovskiy saw his spot-kick parried by Dimitrievski after a VAR review saw Daniel Avramovski penalised for handball.
North Macedonia applied some late pressure to no avail, with their tournament now looking likely to come to an end after the group stage is concluded.