Ander Herrera's bullet header in the 41st minute was followed in the 81st by a free kick from Thiago Alcantara, who caught Swiss goalkeeper Yann Sommer too far out.
They were the first goals conceded in the tournament by the Swiss, who were chasing their first Euro Under-21s title in their first final.
It was another triumph in the international arena for Spain, whose senior team are world and European champions.
Favored Spain won its first Euro Under-21s in 1986, and its three titles are second only to Italy's five in tournament history.
Switzerland failed to trouble Spain goalie David de Gea, although the Swiss sped up the pace in the second half. Pajtim Kasami and Timm Klose gave Switzerland its best chances in the 78th but the shots were wide.
Both sides entered the final unbeaten, the Swiss the first side to make the final without conceding a goal.
Belarus grabbed third place after winning 1-0 against a 10-man Czech Republic in Aalborg, northern Denmark. Yegor Filipenko's volley of Oleg Veretilo's cross came in the 88th. A last-minute attempt by Libor Kozak failed, allowing Belarus to compete at the London Olympics for the first time.
Switzerland: Yann Sommer, Philippe Koch, Jonathan Rossini, Fabian Lustenberger, Innocent Emeghara (Mario Gavranovic, 53) Fabian Frei (Amir Abrashi, 54), Xherdan Shaqiri, Admir Mehmedi, Granit Xhaka (Pajtim Kasami, 67), Timm Klose, Gaetano Berardi.
Spain: David de Gea, Alvaro Dominguez, Javi Martinez, Adrian Lopez (Jeffren Suarez, 80), Juan Mata, Martin Montoya, Didac Vila, Ander Herrera (Diego Capel, 90), Thiago Alcantara, Alberto Botia, Iker Muniain (Daniel Parejo, 85).