South Africa restricted England to 311/8 in the World Cup opener at the Oval on Thursday as the tournament hosts and favourites made a stuttering start in their quest to win the trophy for the first time.

Ben Stokes top-scored with 89, while England captain Eoin Morgan (57), Jason Roy (54) and Joe Root (51) all made fifties. But England, who last year set a world record for the highest One-day international total of 481/6 and have often blown teams away with the bat, were repeatedly pegged back by a Proteas side who deployed the slower ball to good effect.

England, after Britain’s Prince Harry officially opened the tournament, lost a wicket second ball before Roy and Root shared a stand of 106 that was equalled by Morgan and Stokes.

South Africa captain Faf du Plessis, despite being without injured spearhead Dale Steyn, saw his decision to field rewarded in dramatic style when Imran Tahir struck with just the second ball of the match to dismiss Jonny Bairstow for a golden duck.

Normally it is a paceman who has the first spell. But Du Plessis gave the ball to 40-year-old leg-spinner Tahir, the oldest player in the tournament, instead and a well-flighted delivery had Bairstow edging to wicket-keeper Quinton de Kock, with the Tahir running off in a semi-circle – his familiar celebration.

Roy and Root were both in fine touch and England would have wanted at least one of them to go on to a big score. But from 107/1, England lost two wickets for four runs in four balls.

Roy flat-batted an intended pull off Andile Phehlukwayo to Du Plessis at mid-off before Root steered Rabada to backward point, where JP Duminy held a sharp catch.

Morgan, whose aggressive approach has been symbolic of England’s rise to the top of the one-day international rankings after their woeful first-round exit at the 2015 World Cup, struck the first two sixes of the match off successive balls from fast bowler Lungi Ngidi.

The left-hander’s drive over long-off was followed by a pull above long leg. But having completed a run-a-ball fifty, Morgan’s drive off Tahir (2/61) was well caught low down by a diving Aiden Markram, running in from long-on.

Dangerman Jos Buttler fell for just 18 while left-hander Stokes, trying to break the shackles, saw his 79-ball knock end in the penultimate over when a reverse hit off Ngidi (3/66) found Hashim Amla at third man.