Euro 2016 Qualifying: Spain 1 Ukraine 0
Morata's effort, scored just before the half-hour mark, saw Spain move three points ahead of their opponents in Group C, but they remain three adrift of leaders Slovakia, who beat Luxembourg 3-0.
Vicente del Bosque's side had to withstand a series of Ukraine attacks, though, particularly in the second half, with goalkeeper Iker Casillas to thank for a pair of crucial saves.
Juventus forward Morata was included from the beginning after Diego Costa withdrew from the squad with a hamstring injury.
And he did not let his country down, scoring for the third successive game in all competitions to settle a tense contest in Seville.
Ukraine had to be alert early on as Yevhen Khacheridi intercepted David Silva's dangerous cut-back when the Manchester City man got in behind their defence.
Andres Iniesta looked dangerous, and played in Morata, who could only shoot wide, while Ukraine goalkeeper Andriy Pyatov did well to tip a fierce Koke effort over.
Ukraine were not without their chances, as Artem Fedetskiy volleyed wide when free in the penalty area following a dangerous set-piece, and Ruslan Rotan narrowly missed the target after Fedetskiy found him with a clever header.
They were only half-chances but Ukraine were made to rue their failure to take them when Morata opened the scoring in the 28th minute.
The 22-year-old ran on to Koke's excellent first-time ball and held off the attention of Khacheridi before lifting over Pyatov despite going to ground.
Morata had the ball in the back of the net again - only for his effort to be ruled out for offside - and the woodwork was next to deny Spain, as Sergio Ramos' thumping header bounced off the crossbar from Silva's free-kick four minutes before the break.
The hosts were sluggish after the interval, though, and were grateful to Casillas for an excellent save after Rotan's free-kick was allowed to bounce and nearly crept in untouched.
Casillas then conceded possession in a dangerous area, but reacted well to keep out Rotan's effort, and Spain's malaise was summed up by a poor Iniesta pass - a true rarity.
Ukraine probably should have levelled when substitute Artem Kravets, an early substitution for the injured Roman Zozulya, centred for Rotan but he fired straight at Casillas from eight yards.
Jordi Alba limped off with a hamstring injury with 12 minutes remaining but Ukraine seemed to run out of energy in the latter stages, meaning there was no late rally from the visitors.
Instead it was Spain who could have scored again, after substitute Santi Cazorla and Isco linked well, but the former saw his shot superbly turned behind by Pyatov.
One goal was enough for Spain, though, as they recorded an important victory without hitting top form.