Chasing a winning target of 206, Ireland were all out for 178 in 45 overs to give Bangladesh victory by 27 runs.
Dhaka: Bangladesh stung flat-footed Ireland to resurrect their World Cup campaign with a 27-run victory in front of some 25,000 boisterous home fans on Friday.
Bangladesh, bowled out for 205 after taking first strike in the day-night match, hit back to dismiss the leading non-Test nation for 178 in 45 overs at the packed Sher-e-Bangla stadium.
Former captain Mohammad Ashraful, who scored just one run, turned an unlikely hero with the ball by claiming two top-order wickets with his part-time off-spin.
Skipper Shakib Al Hasan also picked up two wickets with left-arm spin before seamer Shafiul Islam polished off the tail in quick time with 4-21 from eight overs.
Bangladesh, who had lost their first match to India last week, lapped up the pressure in a game they had to win to stay in content_cnion for the quarter-finals from Group B.
But the co-hosts, who play all their league matches at home, must still beat the Netherlands and at least one of the established teams among England, South Africa and the West Indies.
The win helped Bangladesh avenge two successive defeats by Ireland in major events, having lost during the 2007 World Cup in the Caribbean and again in the 2009 World Twenty20 in England.
"It was a good game. I thought we played really hard cricket although we didn't bat well. Our bowlers and fielders showed great character and our support was excellent," said Shakib.
Disappointed Irish skipper William Porterfield said a poor batting display cost his side a crucial win.
"It's not hard to work out where we lost the game. We never settled down with the bat. The first 50 overs was pretty good," he said.
But he added: "You can't afford that many soft dismissals."
Shakib turned to spin after just one over from Shafiul, bringing on left-armer Abdul Razzak in the second over and off-spinner Naeem Islam in the third.
The move paid immediate dividends as Paul Stirling was stumped off Razzak for nine, before Irish captain William Porterfield fell to Shakib's first delivery for 20.
Ed Joyce and Niall O'Brien carried the score from 36-2 to 75 when Ashraful struck with the first delivery of his second spell.
Joyce, the former England batsman, made a fluent 16 when he was beaten in the air by a flighted ball and gave a delighted Ashraful an easy return catch.
Ashraful then bowled Andrew White for 10, while Shakib claimed his second wicket when Niall O'Brien fell to a diving catch by Tamim Iqbal at deep mid-wicket after making 38.
Kevin O'Brien slammed three fours and a six in 37 during a sixth-wicket stand of 41 with Andre Botha when he pulled Shafiul to mid-wicket to reduce Ireland to 151-6 in the 37th over.
Shafiul, who had recovered in time from a shoulder injury to play the key match, claimed three of the last four wickets to send Ireland crashing.
Earlier, seamer Andre Botha picked up three wickets and George Dockrell and Trent Johnston claimed two each to bowl out the hosts in 49.2 overs.
The hosts made a blistering start, racing to 49 without loss by the end of the fifth over, 37 of those runs coming from the blade of Tamim.
But the advantage was soon lost as four wickets fell for 33 runs in the next 10 overs.
Man of the match Tamim, who top-scored with 70 against India, began by taking 10 runs in Boyd Rankin's opening over and stroked seven boundaries in his 44 off 43 balls.
Mushfiqur Rahim and Raqibul Hasan lifted the hosts with a 61-run stand for the fifth wicket, before tailender Naeem Islam boosted the total with a defiant 29 towards the end.