The League Two leaders, who accounted for Derby on their way to a fifth-round defeat to Manchester United in the competition last season, dominated their Championship visitors from start to finish.
Josh Simpson and Tubbs both hit the post in the first half and with 17 minutes remaining Sergio Torres's ball over the top found Tubbs who produced a cool finish for his 17th goal of the season.
A miserable afternoon for the Robins got worse with eight minutes remaining when Stephen Pearson, who extended his loan from Derby until the end of the season on Friday, saw red for a second booking.
Crawley made a confident start and Tyrone Barnett headed just wide after two minutes.
The home side looked the most likely to create a meaningful chance but struggled to breakdown a Bristol City defence that had only conceded one goal in their last four games.
With 20 minutes gone a throw into the box did catch the City defence unawares but Crawley defender Claude Davis sent an ambitious first-time volley over the bar.
Moments later a long ball forward was flicked on by Barnett and Simpson fired in a shot from the edge of the box which beat David James but hit the inside of the post and bounced to safety.
Bristol City had barely threatened but should have gone in front in the 33rd minute when Albert Adomah picked out Nicky Maynard in the box and he shot wide when he should have done better.
Woolford sent an effort just wide for the visitors before the woodwork came to their rescue for a second time when Tubbs's shot hit the post and Dannie Bulman failed to force in the rebound.
Crawley picked up where they left off in the second half and Tubbs got a sight of goal but mishit his shot and James made the save.
Barnett continued to dominate in the air and he sent another header just wide.
On the hour mark Crawley defender Dean Howell whipped in a good cross which found Barnett at the back post and he headed onto the roof of the net.
McInnes brought striker David Clarkson on for midfielder Neil Kilkenny in a bid to give the Robins more attacking impetus but Crawley continued to dominate with Kyle McFadzean volleying at James.
With 73 minutes gone Crawley finally got the goal their performance deserved when Torres's pass split the Bristol City defence and Tubbs slotted the ball into the bottom-right corner.
Any hope of a Bristol City comeback ended late on when Pearson received a second yellow for a poor challenge on Simpson.