Jake White's charges also became the first South African side to win away at at Irish side Munster after seven previous attempts.
The hosts took the lead when flyhalf Jack Crowley opened the scoring with a penalty but the Bulls hit back and scored a try through flank Marcell Coetzee.
Flyhalf Johan Goosen added the conversion and then slotted a penalty to put the South African outfit in the lead.
The home side however hit back just before the halftime break when former Sharks back Thaakir Abrahams went over for try and Crowley added the extras as the teams went into the break with the score level at 10-10.
The rain became heavy after the halftime break and, with handling becoming difficult, Goosen and Crowley traded penalties.
The Bulls then won a penalty with seven minutes remaining and replacement back Keagan Johannes slotted the all-important three points to give the Bulls a 16-13 lead.
Munster through everything they had at the South Africans in the dying stages, going trough several phases, but the Bulls defended manfully to see out the victory.
White's team in the mix in the URC standings and travel to take on Glasgow in Scotland next weekend.