Vale went close inside the first 15 minutes when Waine glanced Connor Hall's left-wing cross narrowly wide of the far post.
On the half hour mark, the New Zealand forward drove towards goal, using his strength to hold off the defence in the area before forcing Joe Lumley into a save.
Waine's third chance of the half came just before the break, heading wide from a corner.
Having struggled to create any clear-cut chances in the first half, Bristol City began to take control in the second as Sam Bell swivelled and shot in the area, but couldn't keep his effort down.
In stoppage time, Bell went close again with a header blocked.
Waine was almost gifted a goal in the extra period when he pounced on a weak header by George Tanner, but his effort was cleared off the line by Cameron Pring.
Vale keeper Joe Gauci was equal to Scott Twine's curling free-kick as he was finally tested.
With penalties on the cards, Waine pounced with eight minutes left, finishing from a tight angle after meeting Andre Gray's through-ball and rounding Lumley to seal his side's first fifth-round appearance since they lost a replay at home to Leeds United in 1996.