The UAE Team Emirates-XRG rider outlasted Andreas Leknessund in a tense pursuit up the final climbs, crossing the line 32 seconds ahead of the Norwegian. Portugal's Afonso Eulalio held on to the leader's pink jersey ahead of Jonas Vingegaard.
Leknessund mounted a determined chase in an effort to stay in contact with Narvaez up the punishing final ascent, but he was unable to bridge the gap and crossed the line in second place.
"It was a nice stage for me. I think we played well, with my teammate. He was the man of the day, Mikkel Bjerg and always working for the team," Narvaez said.
"In the end, it was about the legs. The first part, the full headwind, on the flat, was really hard. But we never gave up.
"With 60km to go we rode well, we rode smart, and we had the opportunity to go for the stage."
Following Friday's brutal mountain finish on the Blockhaus, in which Denmark's Vingegaard secured an emphatic victory, the riders moved to the Adriatic coast before tackling a punishing uphill finish in the Marche region town of Fermo.
"It was so hard to get the gap. Then we cooperated well, but Narvaez was stronger in the end, as expected. I cannot be disappointed. Second place was what I could do," Leknessund said.
Norway’s Martin Tjotta of Uno-X Mobility saw off the remaining chasers to secure third place, 10 seconds behind compatriot Leknessund.
Narvaez powered to victory in stage four on Tuesday. The 29-year-old also won Giro stages in 2020 and 2024, and had not raced this season before the Grand Tour following a crash in January in Australia.
