The defeat ended promotion-chasing Bradford's run of five unbeaten League Two matches, but it was only Rochdale's second win in seven.
Terry Gornell put Rochdale ahead in the sixth minute, taking a short pass from Bobby Grant just inside the penalty area before beating goalkeeper Matt Duke with a rasping right-foot shot into the roof of the net.
Bradford equalised with a penalty in the 20th minute when striker Alan Connell was pushed in the back by Ryan Edwards as he tried to reach Kyel Reid's cross and Connell, himself, scored from the spot.
However, Rochdale then raced into a 3-1 lead with two goals in four minutes. Andrew Tutte restored their lead after 28 minutes with a skidding 20 yard shot that beat the diving Duke and Ashley Grimes scored their third goal in the 32nd minute, firing home from 10 yards after Ryan Edwards headed the ball back into the goalmouth.
Bradford pulled a goal back four minutes later when Connell scored his second from the spot after Phil Edwards handled James Meredith's cross, but Rochdale restored their two goal advantage in the 40th minute when Gornell scored his second goal with a looping header.
Bradford tried to get back into the game in the second half, but were unable to break through a solid visitors' defence.