Magical Moeen Ali hit a superb 155 not out to help England take control of the second Investec Test match with Sri Lanka at  the Emirates ICG in Durham.

The Worcestershire all-rounder struck two sixes and 17 fours in achieving his highest Test score.

It surpassed his previous best effort of 108 not out against the same opponents at Headingley two years ago.

Moeen's magnificent knock was the fourth highest by an England number seven in Test cricket.

He also became the fifth quickest England player to score 1,000 Test runs and take 50 wickets.

Moeen reached that milestone in 25 Tests with only Ian Botham (21) and Trevor Bailey, Tony Greig and Ben Stokes (22) ahead of him.

He came to the wicket at 227-5 and was still in the middle when Alastair Cook declared on 498-9 from 132 overs.

Moeen shared in stands of 70 with Jonny Bairstow, 92 with Chris Woakes and 72 with Steven Finn.

The 28-year-old gradually accelerated with his first 50 taking 109 balls, the second 43 and the third 41.

He brought up his 150 in the grand manner with a six over deep mid wicket off Suranga Lakmal.

By the close Sri Lanka had been reduced to 90-8. Moeen did not take a wicket but his four overs to date have all been maidens.

Moeen's Test scores of 50 and over are:

2014

108* v Sri Lanka at Headingley

2015

58 v West indies in Bridgetown

58 v New Zealand at Lord's

77 v Australia at Cardiff

59 v Australia at Edgbaston

2016

61 v South Africa at Centurion

155* v Sri Lanka at Durham