McNulty, who rides for UAE Team Emirates, edged out Ben Healy and Marco Frigo at the end of Sunday’s tough 195km route from Seregno to Bergamo.
All three had been part of a large breakaway that went early in the stage.
Healy attacked on the fourth and final classified climb and McNulty caught up to him on the descent, followed by Frigo with 10km remaining.
Frigo was dropped again on the unclassified climb shortly before the finish, but the Italian’s superb descending skills enabled him to catch back up to the other two, with the finish line in sight, setting up the final sprint.
Geraint Thomas led a group of general classification riders across the line, almost seven minutes behind McNulty but 33 seconds ahead of Armirail.
That saw the Frenchman’s advantage over Thomas cut to one minute eight seconds. Primož Roglič was two seconds further back.
Jack Haig, battling on after a brutal week, was the leading Australian on the day, coming home 23rd just a couple of seconds behind the main contenders.
He’s now down to 17th in the overall standings, 7:48 down.
Jay Vine (UAE Team Emirates) is 46th, now more than 50 minutes behind, while Rohan Dennis (Jumbo-Visma), in his final Giro, is 54th, over 63 minutes down.
The unforgiving race has its much-needed second and final rest day on Monday before heading to the Dolomites and a brutal final week.
Three of the last six stages have been given the maximum difficulty rating of five stars and the week kicks off with one of them on Tuesday.
There is more than 5000m of elevation along the 203km route from Sabbio Chiese to Monte Bondone, including a top-category climb to the finish.
Earlier on Saturday, Nico Denz sprinted to his second victory in the Giro, at the end of the 14th stage, after almost celebrating too early, while Armirail became the first Frenchman to wear the pink jersey in this century.
Denz lifted his arms in celebration as he crossed the line at the end of the 14th stage on Saturday, but he appeared not to have spotted Derek Gee on his right.
He was mightily relieved to pip Gee by half a wheel.
Haig, Australia’s last hope to defend the Giro title, wrote off his dream for another year after problems from a crash 24 hours earlier made him suffer on a merciless, short and steep Alpine stage.
The Bahrain Victorious team leader had started Friday’s 13th stage less than three minutes down on the leader Thomas in 11th place and still clinging on to hope that he could force his way towards the podium topped last year by compatriot Jai Hindley.
But Haig’s hopes had been fatally weakened by the bruising fall he suffered in a freakish accident in a feed zone on Thursday and he was a shadow of himself as he lost over five minutes on the brutal, shortened stage to the Swiss resort of Crans Montana.
AAP