Australia made heavy weather of a modest chase before beating Sri Lanka by three wickets in the second Twenty20 International on Wednesday to take an unassailable 2-0 lead in the three-match series.

Chasing 125, world champion Australia struggled against Wanindu Hasaranga's (4-33) spin before Matthew Wade's run-a-ball 26 not out secured a tense victory with 13 balls to spare.

READ | SL vs AUS: Australia beats Sri Lanka by 10 wickets in 1st T20

Put into bat, Sri Lanka struggled to get going and rode on cameos from Charith Asalanka (39) and Kusal Mendis (36) to post a below-par 124-9, barely avoiding being bowled out inside 20 overs.

Australia's ploy to open its attack with Glenn Maxwell (2-18) paid off with the off-spinner dismissing opener Danushka Gunathilaka in the first over.

Australia was without fast bowler Mitchell Starc who slit the index finger of his bowling hand on his shoe spike during the tourists' 10-wicket win in Tuesday's series opener.

His replacement Jhye Richardson (3-26) ensured Australia did not feel Starc's absence and Kane Richardson claimed 4-30 to restrict Sri Lanka.

For Australia, captain Aaron Finch (24) began well but Hasaranga rocked their top order and David Warner (21) was run out after a mix-up with Maxwell as their chase threatened to unravel.

Hasaranga dismissed Maxwell and Ashton Agar in successive deliveries but Wade calmed Australian nerves and secured victory with a four off Gunathilaka.

The teams move to Pallekele for the final Twenty20, which will be followed by five one-dayers and two test matches.