Sent into bat, the Knight riders posted a challenging 165 for eight in their stipulated 20 overs, thanks to some brilliant batting by skipper Gautam Gambhir, who struck a strokeful 64 in just 39 balls.
Balaji then scalped four wickets giving away just 18 runs and Jacques Kallis accounted for two more as the visitors returned to restrict the Challengers to 123 for nine at the Chinnaswamy Stadium.
With this victory, Kolkata snapped their two-match losing streak in the fifth IPL, where they had lost to Delhi Daredevils and Rajasthan Royals in their last two encounters respectively.
The Royals Challengers had a disastrous start to their runchase, losing four of their top batsman for just 25 runs with pacers Kallis and Balaji claiming two wickets each.
Kallis started the proceeding in the second over, sending back opener Cheteshwar Pujara (6) who was caught at slip while tring to steer the ball towards third man.
The South African allrounder then scalped the prized wicket of Chris Gayle (2) in his next over. Trying to pull a short delivery from Kallis over midwicket, Gayle ended up top-edging the ball to Laxmi Shukla at mid-on.
Balaji then got ino the act and dismissed Virat Kohli (6) in the sixth over to leave the hosts tottering at 20 for three. Kohli miscued a short and ended up giving a catch to Manoj Tiwari at point.