In the biggest upset of the Dhaka Premier Division Cricket League so far, the unfancied Kalabagan Cricket Academy (KCA) beat pre-tournament favourites Abahani Limited by three wickets to register their first win of the tournament at the Fatullah Cricket Stadium.

Mahmudul Hasan's second List-A century steered KCA's chase of 283, which they ultimately accomplished with three wickets in hand and 19 balls to spare. His 106 off 111 included eight fours and three sixes, and by the time he was dismissed the match was all but won.

Mahmudul received crucial support from Taposh Ghosh and Nuruzzaman in the lower order, before Bishawnath Haldar, in a No. 9, struck left-arm spinner Saqlain Sajib for two consecutive sixes in the 47th over to land the killer blow.

There were heated moments during the chase as three KCA batsmen - Irfan Shukkur, Jatin Saxena and Mahmudul - grumbled after being given leg-before. There was also some animated shouting from the KCA dugout following these dismissals.

Mahmudul had shared a 77-run third-wicket stand with Saxena but the side soon slipped to 163 for 5 in the 26th over when Myshukur Rahaman was run out. Mahmudul then added 82 runs for the sixth wicket with Taposh, whose 44-ball 47 played a key role in bringing down the required run-rate.

Mahmudul fell with just 16 runs required off 34 balls, before Nuruzzaman and Bishawnath finished the job.

Earlier, Mahmudul had also taken three wickets in Abahani's 282 for 7. Avishek Mitra top-scored with 63, while there were useful contributions from captain Tamim Iqbal (48), Mosaddek Hossain (42) and Manoj Tiwary (40), their third Indian recruit. In the end, though, 282 did not prove to be enough as KCA marched to a famous win.

Prime Doleshwar Sporting Club moved to second place after they beat table-toppers Mohammedan Sporting Club by six wickets at the Shere Bangla National Stadium in Mirpur.

Prime Doleshwar crossed the target of 189 in 41.3 overs with Imtiaz Hossain continuing his fine form, making 88 off 109 balls with seven fours and three sixes. He shared a 53-run opening stand with Robiul Islam Robi before adding another 72 runs for the second wicket with Raqibul Hasan.

Imtiaz missed out on his third century of the tournament, when he missed a flick and was trapped lbw in the 37th over, with 26 runs required to win. Prime Doleshwar did not lose any more wickets to achieve the remaining runs.

Mohammedan, who were asked to bat, never recovered after Nazimuddin, playing his first competitive match since October, was run out in the second over after he and Ezaz Ahmed ended up at the same end due to a mix-up. Ezaz was caught behind off Al-Amin Hossain ten balls later, before Upul Tharanga, the league's top-scorer at the start of the game, drove straight to cover to make it 16 for 3 in the sixth over.

Fast bowler Farhad Reza then had the big wicket of Mushfiqur Rahim (8) who lost his leg stump in an attempt to play the ball fine. Naeem Islam held firm from there, and added 77 runs for the fifth wicket with Ariful Haque. Naeem reached his fifth List-A century but was bowled soon after, by Farhad for 100 off 147 balls with ten fours. The lower order did not contribute much and Mohammedan were bowled out in 47.4 overs. Farhad and Al-Amin finished with three wickets each.

Wicketkeeper-batsman Nurul Hasan scored his maiden List-A century to help Prime Bank Cricket Club beat Legends of Rupganj by 60 runs at the BKSP-3 ground.

Nurul's 108 off 112 included seven fours and two sixes, and it formed the backbone of Prime Bank's total of 299 for 9 in 50 overs. He added 52 for the third wicket with Mehedi Maruf (75) and 98 for the fourth wicket with Sachin Rana (40).

Left-arm spinner and Rupganj captain Mosharraf Hossain, offspinners Asif Ahmed and Nahidul Islam and seamer Alauddin Babu took two wickets each.

Legends of Rupganj managed just 239 in reply, with Jalaj Saxena (52) and Asif Ahmed (47) providing the only knocks of any substance. Their fifth-wicket partnership of 58 was the biggest of the innings but, before and after that, wickets fell at regular intervals. They were bowled out in the 46th over.

Rana took four wickets with his medium-pace, including the big one of Soumya Sarkar in the sixth over. He finished with figures of 4 for 37 off eight overs to cap off a fine all-round performance in his second match for Prime Bank.

The defeat prevented Legends of Rupganj from going top of the table.

Mohammad Isam is ESPNcricinfo's Bangladesh correspondent. @isam84