The Spaniards had suffered a 1-0 defeat by the Germans in the 2017 final but dominated this year's showpiece at the Stadio Friuli until a late Amiri consolation for the Germans.
Ruiz scored after eight minutes with a low shot into the corner and Olmo got the second in the 69th by dinking the ball over keeper Alexander Nuebel who failed to hold Ruiz's drive.
U-21 Euro
Spain and Germany set to meet in U21 final after big semi-final wins
27/06/2019 AT 21:44
Spain's Carlos Soler hit the bar in the 81st before Almiri's fine late strike but the Spaniards held on to celebrate a fifth Euro under-21 title to match the record of hosts Italy.
U-21 Euro
England throw away lead three times in draw with Croatia
24/06/2019 AT 21:33
U-21 Euro
England knocked out of U-21 Euros following Romania defeat
21/06/2019 AT 20:38