Pakistan rode on brilliant hundreds by openers Salman Butt and Kamran Akmal to outlast Bangladesh by 23 runs and win the third day-night international at the Gaddafi Stadium here on Sunday.

Butt hit a career-best 137-ball 132 while Akmal scored 81-ball 100 that laid the foundation for Pakistan's 308-8 in 50 overs before the tourists gave the home team a scare by reaching 285-7 in 50 overs.

The victory gave Pakistan an unassailable 3-0 lead in the five-match series.

"It was a hard fought win. We got a good start but credit to Bangladesh for restricting us by bowling well. They also batted well to give us a run for our money but I am happy that we won in the end," said captain Shoaib Malik.

Left-hander Shakib Al Hasan raised Bangladesh's hopes with a pugnacious 73-ball 75. But once he fell, it was curtains for the visitors with 59 runs required off the last four overs.

Bangladesh earlier threatened to upset when opener Tamim Iqbal (63) and Aftab Ahmed (42) cut loose during a 81-ball 90-run partnership for the second wicket after Bangladesh lost opener Shahriar Nafees without scoring.

Iqbal, who scored 60 at Faisalabad, hit eight boundaries during his 69-ball knock before his entertaining innings came to an end with a brilliant piece of fielding by Fawad Alam from deep point.

Going for a third run, Iqbal fell short of his crease.

Alam was again at his best when he ran out Bangladesh skipper Mohammad Ashraful (16) from covers. In between the fielding brilliance, Ahmed was caught behind off Malik.

Hasan and Mahmudullah Riad (24) added 59 for the fifth wicket as Bangladesh needed 103 off the last ten overs. Afridi (2-48) removed Ferhad Reza (13) and Hasan to finally end the tourists' resistance.

It was Bangladesh's highest total against Pakistan, eclipsing the 244-7 they made in Karachi in 2003.

Ashraful said his team gave away 30 runs too many.

"It was a very good game and a couple of runouts didn't help our cause. We gave some 30 runs more but I am happy that we put up a good show," he said.

Earlier Butt and Akmal put the tourists' attack to the sword.

Butt followed his 76 in Pakistan's seven-wicket win in the second match at Faisalabad on Friday with his fifth one-day hundred, sharing a 151-run partnership with Akmal for the first wicket after Pakistan won the toss and decided to bat.

Butt and Akmal were in a punishing mood from the start as they shared an opening stand of 151 by the 24th over, hitting the bowlers to all corners of the park.

Akmal, who survived a confident leg-before appeal against paceman Mashrafe Mortaza when on one, hit pacemen Shahadat Hossain and Reza for three boundaries each to enter the 90s.

The 26-year-old took a single off Mortaza to complete his hundred, but was bowled by Mahmudullah on the very next ball. He hit 16 boundaries and a six.

The 23-year-old Butt was steady, reaching his hundred off 106 balls with eleven boundaries and ensured Pakistan did not spoil a good start after losing Bazid Khan (two), Mohammad Yousuf (two) and Shahid Afridi (13) in quick succession.

Bazid, brought in as one of three changes to the Pakistan team, failed to make his ground after going for a sharp single while Yousuf was stumped off left-arm spinner Hasan after playing eight deliveries.

Afridi hit two boundaries before holing out to Hasan, who finished with 2-50.

Butt added 80 runs for the fifth wicket with Malik (33) and 30 with Misbah-ul Haq (10) for the next before he was caught behind off Mortaza in the penultimate over.

Butt hit 15 boundaries during his knock. His previous highest score of 129 came against India at Kanpur last year.

The fourth match will be played at Multan on Wednesday before the teams head to Karachi for the last match on Saturday.