India, sent in to bat on a lifeless wicket, seized the opportunity to pile up 326 without loss by the close of the first day's play at Test cricket's newest venue, the Sher-e-Bangla National stadium here.
Jaffer, who bagged a pair in the drawn first Test in Chittagong, justified the team management's decision to retain him in the side by slamming 17 boundaries in his fourth Test century.
The 29-year-old Mumbai opener put on 175 for the first wicket with Dinesh Karthick, who made 82 before retiring hurt with cramp in his left arm in the last over before tea.
Jaffer also fell victim to the energy-sapping heat and humidity and retired hurt with leg cramps midway through the final session of play.
Cramp seemed the only way batsmen would depart on the slow, barren wicket, but there was no respite for the hosts as Indian captain Rahul Dravid helped himself to 88 not out before stumps were drawn.
Sachin Tendulkar was the other batsman at the crease, on nine. Both Jaffer and Karthick can return to bat later in the innings, if required.
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 vain in the oppressive conditions, did not help their own cause by dropping both openers.
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 at 42 when he drove spinner Mohammad Rafique uppishly but the bowler failed to latch on to a waist-high return 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 come off the edge of the bat.
Karthick and Jaffer, who plodded to 67-0 in 26 overs before lunch, hit out in the afternoon session to add a further 108 runs in 26.5 overs by tea.
Karthick, who turns 22 on June 1, followed his 56 in the first innings of the opening Test with his fourth half-century.
Bangladesh selected three seamers in Mashrafe 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.