It was England's second victory on tour after they beat the Southern SA Barbarians 54-26 in Kimberley last week.
The Northern Barbarians started at a high pace and fullback JC Roos kicked a penalty in the sixth minute.
However, it was not long before veteran flyhalf Charlie Hodgson answered to level the scores.
The BaaBaas kept putting England under immense pressure but good defence from the visitors denied the home side until centre Joubert Engelbrecht scored a try in the corner thanks some hard work by the BaaBaas captain JW Jonker.
England were jolted awake and it was not long before fullback Nick Abendanon went over in the corner after some good attacking play.
Hodgson converted to again level the scores at 10 points all.
The BaaBaas defended well but they lacked discipline in their tackles.
In the 23rd minute, England took the lead for the first time after No 8 Ben Morgan dived over for a converted try.
Play was interrupted for about six minutes with England winger Ugo Monye being carried off the field with a neck injury.
The lapse in play resulted in a break in concentration and some sloppy handling followed.
Winger Christian Wade almost dotted down for England in the 30th minute, but some good BaaBaas defence saw him bumped out on the corner flag.
Abendanon then scored his second five pointer of the evening after showcasing some fancy footwork. He got good ball on the front-foot after the English forwards mauled 30m.
Just before half-time, the ever present Abendanon scored his third try of the evening after a clever kick-through by England. Hodgson converted to give his side a 31-10 half-time lead.
The break halted England's momentum and the Barbarians finally scored in the 53rd minute when scrumhalf Shaun Venter dummied and dived over for a converted try.
After England's flanker Jamie Gibson was yellow-carded for a late tackle, it left the visitors one man short and Venter went over for his second try, duly converted by Roos.
The local crowd got behind the BaaBaas, while England started making silly mistakes but when replacement Johnny May went over in the corner, England regained the upper hand.
May followed up with his second try which Hodgson converted and centre Anthony Allen added his name to the scorers as the wheels came off for the home side in the last ten minutes.
Winger Deon Scholtz scored a consolation try for the BaaBaas near the end with referee Mark Lawrence awarding a penalty try to England on the final whistle.
England currently trail the Springboks 2-0 in the three-match series with the last Test to be played in Port Elizabeth on Saturday.
Scorers:
Barbarians:
Tries: Joubert Englebrecht, Shaun Venter (2), Deon Scholtz. Conversions: JC Roos (4). Penalty: Roos
England:
Tries: Nick Abendanon (3), Ben Morgan, Jonny May (2), Anthony Allen, penalty try. Conversions: Charlie Hodgson (7). Penalty: Hodgson
Sin bin
England - Jamie Gibson 55 minutes
Referee: Mark Lawrence (RSA)
Teams:SA Barbarians (North):
15-JC Roos (Pumas); 14-Danwel Demas (Pumas), 13-JW Jonker (Pumas, captain), 12-Joubert Engelbrecht (Leopards), 11-Deon Scholtz (Pumas); 10-Coenie van Wyk (Pumas), 9-Shaun Venter (Pumas); 8-Nicky Steyn (Griffons), 7-MB Lusaseni (Leopards), 6-Jaco Bouwer (Pumas), 5-Rudi Mathee (Pumas), 4-Eduan van der Walt (Pumas), 3-Ashley Buys (Pumas), 2-Torsten van Jaarsveld (Pumas), 1-BG Uys (Leopards).
Substitutes: 16-Pellow van der Westhuizen (Pumas), 17-Zane Kilian (Valke), 18-Boela Serfontein (Pumas), 19-Martin Sithole (Griffons), 20-Andries Mahoney, (Griffons), 21-Hoffman Maritz (Leopards), 22-Tertius Maarman (Griffons).
England:
15-Nick Abendanon; 14-Christian Wade, 13-Anthony Allen, 12-Jordan Turner-Hall, 11-Ugo Monye; 10-Charlie Hodgson, 9-Lee Dickson; 8-Ben Morgan, 7-Carl Fearns, 6-Jamie Gibson; 5-George Robson (captain), 4-Graham Kitchener; 3-Paul Doran Jones, 2-Tom Youngs, 1-Matt Mullan
Substitutes: 16-Joe Gray, 17-Rupert Harden, 18-Mouritz Botha, 19-James Haskell, 20-Karl Dickson, 21-David Strettle, 22-Jonny May