India, resuming at 326-0 after being given first strike on a lifeless wicket, moved to 442-1 by lunch on the second day at the Sher-e-Bangla National stadium.
Dravid hit 15 boundaries and a six in his 24th Test hundred before he cut left-arm spinner Mohammad Rafique to Javed Omar at point 30 minutes before lunch.
It was Bangladesh's first success in the match after 108.2 overs and seven hours and 30 minutes in energy-sapping hot and humid weather.
On Friday, Wasim Jaffar and Karthick put on 175 for the first wicket before both batsmen retired hurt with severe cramps and dehydration.
Karthick, who returned to the crease at the fall of Dravid's wicket, reached his maiden Test century off the last ball before lunch.
The Tamil Nadu youngster, who turns 22 on June 1 and is playing his 13th match, has so far hit 13 boundaries.
Senior pro Tendulkar was unbeaten on 63 at the break.
Bangladesh coach Dav Whatmore, who ends his four-year tenure after the match, admitted on Friday that the hosts had erred in choosing to field first.
"We misread the wicket," said Whatmore. "We were taken in by the overcast conditions and believed the track would do a lot more and fetch us some quick wickets."
The first Test in Chittagong ended in a draw earlier this week after 15 of the scheduled 30 hours of play were lost due to bad weather.