Rochdale's young side dominated the first half with some slick pass-and-move football which had Vale chasing shadows.
Graham Cummins steered a shot narrowly wide from Bastien Hery's pass, then headed Michael Rose's cross just off target.
Vale finally landed a blow in the 37th minute when a 20-yard free-kick from Chris Lines was tipped over by Josh Lillis.
But Rochdale got the goal they deserved three minutes later when Rose swung over a terrific cross from the left and Rafferty headed home at the far post from four yards.
Vale showed more gusto at the start of the second half and Tom Pope squandered a 47th minute chance when he hooked the ball over from close range.
But the visitors soon regained their composure and, despite the introduction of substitutes Lee Hughes and Chris Birchall, Vale failed to threaten an equaliser.
Skipper Doug Loft summed up Vale's sorry night when he skewed a 12-yard shot well wide two minutes from time.