Crewe started brightly and Byron Moore drove a fierce shot from the edge of the box which flew just over Matt Gilks' crossbar.
Nardiello threatened from long-range for the visitors but it was Crewe who looked the more likely to score with Matt Bailey shooting just wide.
Zola went close before Gilks had to drop smartly to save a powerful 25-yard effort from Billy Jones.
But the visitors took the lead on the 51st minute when Nowland curled a free-kick low in the bottom corner after Aman Verma felled John Martin on the edge of the box.
Moore should have levelled instantly but he failed to connect with Luke Murphy's low centre from six yards.
The Railwaymen got the equaliser they deserved as Zola swivelled in the box and rifled the ball into the roof of the net in the 73rd minute.
But Nardiello put the visitors through, latching on to Ishmel Demontagnac's pass and finishing in the bottom corner.