The pair, who had plodded to 67-0 in 26 overs before lunch, hit out in the afternoon session of the first day to add a further 108 runs in 26.5 overs by tea.
Jaffer, who bagged a pair in the drawn first Test in Chittagong, was unbeaten at the break on 86 with the help of 11 boundaries.
Karthick, the makeshift opener for the series, followed his 56 in the first innings of the opening Test with 82 not out.
Karthick, who has so far hit 12 fours, suffered cramps in his left arm in the last over of the session, forcing the umpires to call tea.
Bangladesh captain Habibul Bashar may have been swayed by overcast conditions when he asked India to bat, but the wicket offered no assistance to the bowlers.
Bangladesh, who toiled in energy-sapping heat and humidity, did not help their own cause by dropping both batsmen.
Karthick was on 11 when Saqibul Hasan spilled a chance at second slip off left-arm seamer Syed Rasel.
Jaffer was put down in the first over after lunch when he drove spinner Mohammad Rafique uppishly but the bowler failed to latch on to a waist-high catch.
Karthick had moved to 74 when Australian umpire Daryl Harper turned down a loud shout for a catch by wicket-keeper Khaled Mashud as the batsman slashed at a wide ball from Mohammad Sharif.
Repeated television replays confirmed the ball had gone off the edge of the bat.
Karthick and Jaffer saw off a steady five-over opening spell by pace spearhead Mashrafe Mortaza that cost just six runs, before picking up runs off the other bowlers.
Bangladesh selected three seamers in Mortaza, Sharif and Rasel and went in with just one specialist spinner in Rafique.
Another seamer, Shahadat Hossain, who played in the Chittagong Test, was sidelined with high fever.
India awarded a Test cap to 18-year-old Delhi seamer Ishant Sharma, who has played in just one domestic season, in which he claimed 29 wickets in six games.
Sharma, who joined the touring squad after Munaf Patel was injured, took the place of Vikram Rajvir Singh, who played in the first Test.