Portuguese goalkeeper Diogo Costa saved Alvaro Morata's fourth penalty for Spain, then Neves converted his team's fifth attempt to seal the win after their match finished 2-2 after extra time in Munich.
Talk of the first meeting between 40-year-old Portugal captain Cristiano Ronaldo and 17-year-old Spain winger Lamine Yamal dominated the build-up to the Allianz Arena showdown.
Ronaldo had kept Portugal in the game when he equalised in the 61st minute of regular time with his record-extending 138th goal after Mikel Oyarzabal had given Spain a halftime lead.
Oyarzabal squeezed the ball past Portugal goalkeeper Diogo Costa in the 45th after Pedri played him in.
Martin Zubimendi had broken the deadlock in the 21st with a tap in when Portugal's defence failed to deal with Lamine Yamal's cross, then Nuno Mendes levelled five minutes later when he drilled a low shot inside the far post.
Portugal celebrated a second Nations League triumph, having won the inaugural tournament in 2019, with Ronaldo pictured in tears following the shootout.
Earlier on Sunday in Stuttgart, Kylian Mbappe scored one and sett up the other as France beat Germany 2-0 in the third-place decider.
Aurelien Tchouameni set up club teammate Mbappe to score just before the break after the hosts had dominated the first half.
The Real Madrid superstar then set up substitute Michael Olise to seal the result in the 84th minute after a much-improved second-half performance from the visitors.
Germany lost 2-1 to Portugal on Wednesday before France lost 5-4 to European champions Spain in Thursday's semi-final.
With PA.