The Spaniard dominated the final uphill of the Alto de Castillo after good work from his team, finishing two seconds clear of Sergio Luis Henao of Team Sky.
Orica GreenEdge’s Australian Simon Clarke was third.
The 141km ride from Burgos back to Burgos was characterised by three category 3 claims of the Castillo, and an early breakaway that was closed down by a chasing pack led by Katusha.
With 14km left the breakaway had been rubbed out, allowing Katusha - notably Joaquim Rodriguez - to set up Moreno for the finish.
“I want to thank my team-mates, they allowed me to be in fourth, fifth position when the last climbing started,” Moreno, who came second overall last year, said.
“Purito (Rodriguez) was incredible. He was great when he launched my sprint, he imposed a very tough pace, and I had to do nothing but give my best in the last 300 meters.
“Actually these stages were very suitable for my characteristics, but I admit I’m very satisfied with my shape in this period. Tomorrow should be for sprinters, but the day after tomorrow there will be the stage I won last year.
“Since we did a great job until now, we can try to take the victory in general classification after Joaquim’s win in 2011.”