The hosts, who scored a challenging 280-4, bowled Pakistan out for 204 in the day-night match despite an impressive 96 by opener Azhar Ali to level the five-match series 1-1 in Pallekele.

Opener Dilshan top-scored with an unbeaten 119 for his 13th one-day hundred, hitting one six and 11 fours in his brilliant 139-ball knock to help his team set a stiff target.

Azhar, playing only his sixth one-dayer, looked set to complete his maiden one-day hundred before he was bowled by paceman Nuwan Kulasekara. He cracked 12 fours in his 119-ball knock.

Man-of-the-match Perera got his first wicket when he held a superb one-handed return catch to dismiss Mohammad Hafeez (14) before removing Younis Khan (four) and skipper Misbah-ul-Haq (27) to reduce Pakistan to 127-3.

He took three more wickets to complete his third haul of five or more wickets in an innings.

This video is not available in your region

Sri Lanka earlier rejigged their batting order after losing the opening one-dayer by six wickets on Thursday, with Upul Tharanga returning as an opener and skipper Mahela Jayawardene coming in at No 5.

The hosts batted steadily after winning the toss as Dilshan added 70 runs for the third wicket with Dinesh Chandimal (32) and 86 for the next with Jayawardene (53), who opened in the last game.

"We swapped the batting order so we can be flexible. It's good that we can keep changing," said Jayawardene.

"It was important that one of us stays till the end, so it was good Dilshan did so. Perera is brilliant and it's great to have such all-rounders."

Dilshan reached his century in the 43rd over when he pulled paceman Umar Gul for a single and then hit fast bowler Sohail Tanvir over mid-wicket for the first six of the match.

Sri Lanka scored 56 runs in the last six overs, with Perera smashing two sixes and as many fours in his unbeaten 24 off just 14 balls.

Jayawardene was bowled by off-spinner Saeed Ajmal soon after completing his half-century, hitting eight fours in his brisk 45-ball knock.

"The wicket was very good and they played really well. We have to work really hard in all three departments," said Misbah.

Off-spinner Hafeez, Tanvir and leg-spinner Shahid Afridi were the other wicket-takers for Pakistan.

Tanvir struck in his fourth over when he had Tharanga (18) caught behind and then Hafeez held a return catch to remove Kumar Sangakkara (18) with his first delivery.

But there was no stopping Dilshan, who continued to gather runs comfortably and completed his half-century with a four off Afridi.

Pakistan made one change from the team which won the first match as they brought in debutant paceman Rahat Ali in place of injured Mohammad Sami, while Sri Lanka retained the side.