McCullum played 44 balls and slammed six boundaries and three sixes to get his 64 runs while Karthik slamnmed 48 runs off 26 balls that helped Gujarat to post a decent score.
It was a poor start by the Gujarat as the visitors lost their first wicket on the second ball of the innings.
Dwyane Smith (0) was caught by Nitish Rana at the backward point off pacer Mitchell McClenaghan with just one run on the board.
Incoming batsman Suresh Raina (28) along with McCullum then stabilised the innings as two batsmen forged an 80-run partnership for the second wicket.
Just when things seemed going good for the visitors, skipper Raina, who was playing sensibly at the crease by rotating the strike, was sent packing in the 12th over by off-spinner Harbhajan Singh.
Raina's 29-ball knock had only two boundaries.
After one over, McCullum was also sent back to pavilion by experienced pacer Lasith Malinga. While trying to flick on the leg side, the ball sneaked between bat and pad of McCullum and hit the stumps.
With scoreboard reading 99/3, middle order batsmen Ishan Kishan (11) and Karthik then faced up to the challenge and scored 54 runs in four overs to help Gujarat get past 150-run mark before Ishan was taken by McClenaghan in the 18th over.
The fall of wicket brought in Jason Roy (14), who supported Karthik at the other end with some good strokes and thus Gujarat finished at 176/4 in their allotted 20 overs.
For Mumbai, McClenaghan scalped two wickets while Malinga and Harbhajan chipped in with a wicket each.
(This story has not been edited by Business Standard staff and is auto-generated from a syndicated feed.)