In-form Kumar Sangakkara scored a solid half-century to help keep a battling Afghanistan at bay and take Sri Lanka to 253-6 in their Asia Cup match in Dhaka on Monday.

Sangakkara hit 76 including six fours and a six off 102 balls to hold the innings together when the batsmen faltered after Angelo Mathews won the toss and decided to bat at Sher-e-Bangla Stadium.

Sangakkara came to the crease after opener Lahiru Thirimanne had gone for five in the sixth over, bowled by paceman Shapoor Zadran.

Fellow opener Kusal Perera scored a 49-ball 33 with four boundaries and a six, while Mahela Jayawardene made 14. But both fell to medium pacer Mirwais Ashraf, who finished with 2-29 in eight overs, to leave Sri Lanka struggling on 83-3.

Sangakkara, fresh from a match-winning hundred against India, added 74 for the fourth wicket with Dinesh Chandimal (26) to put his team on firmer ground.

Sangakkara was run out in the 38th over with Sri Lanka on 158-5, as Afghanistan -- buoyed by their upset win over Bangladesh -- kept the pressure on.

But Mathews provided a late flurry with an unbeaten 45 off 41 balls, adding an unbeaten 69 with Thisara Perera (19 not out) to get his team past the 250 mark.

Sri Lanka, who will qualify for Saturday's final if they beat Afghanistan, brought in paceman Suranga Lakmal in place of spinner Sachitra Senanayake.

Afghanistan brought back Noor Ali Zadran and Dawlat Zadran for Karim Sadiq and Hamid Hassan from the line-up which upset Bangladesh on Saturday. – AFP