Three Spain strikers scored in a flowing performance as a much-changed Netherlands side, who will now clash with Italy in the second semi-final, were looser in defence than in their two previous tournament outings.
Real Madrid's Alvaro Morata slotted home an easy chance in the 26th minute to set the dominant Spaniards on course for victory. Malaga playmaker Isco hit the second on the half-hour and Alvaro Vasquez of Getafe made it 3-0 in the 90th minute.
The Dutch had their moments, but failed to convert a number of chances against Manchester United goalkeeper David de Gea, who twice had the crossbar to thank for maintaining his record of not conceding throughout the tournament.
"We are delighted to be in the semi-finals. It would show a lack of respect to say we prefer to play Norway... against a team as physically imposing as Norway it's something to take into account," Spain coach Julen Lopetegui said.
Germany beat Russia 2-1 in the second group match in Netanya between the two eliminated teams. Alan Dzagoev put Russia ahead in the 22nd minute but Germany hit back through Patrick Hermann in the 34th and a Sebastian Rudy penalty in the 69th minute.
Italy finished top of Group A, which was completed on Tuesday, with two wins and a draw, after they equalised late in injury time to edge Norway into second spot.
Spain, who are defending the trophy they won two years ago, will play Norway in the earlier of Saturday's two semi-finals in Netanya, while the Netherlands return to Petah Tikva to face Italy. The final will be played in Jerusalem on June 18.
Get the best features, fun and footballing frolics straight to your inbox every week.
Thank you for signing up to Four Four Two. You will receive a verification email shortly.
There was a problem. Please refresh the page and try again.