The teenager stole the show along with Spanish midfielder Jordi Lopez, who put the home side ahead with a brilliant free-kick.
Lopez struck midway through the second half, when he curled a 25-yard effort beyond keeper Adriano Basso and into the top corner.
It crowned a fine display by the former Real Madrid and Sevilla man, who has been handed a chance to rebuild his career by Rangers boss Paulo Sousa after a series of injury problems.
Rangers deserved their win and should have taken a first-half lead through Samuel Di Carmine.
Taarbat found the Italian striker in space near the edge of the penalty area, but Di Carmine's weak shot was easily pushed away by Basso.
Promotion-chasing Bristol City squandered two even better chances to go ahead before the interval.
First, Michael McIndoe's cross was blasted over by an unmarked Ivan Sproule. Then Nicky Maynard fired over from ten yards following a mix-up in the Rangers defence.
Di Carmine sent a shot wide after good work by Hogan Ephraim, before City enjoyed a spell of pressure that led to them getting back on level terms.
Sproule atoned for his earlier miss by picking out McIndoe, who beautifully volleyed home a 77th-minute equaliser.
But Rangers' lead was restored when the lively Taarabt tucked away Damien Delaney's left-wing cross.
Rangers almost went further ahead through substitute Heidar Helguson, whose blistering shot flew just wide.
And, in stoppage time, Basso did well to keep out Wayne Routledge's right-footed volley.