James Taylor hit a run-a-ball 116 as England hammered South Africa A by 163 runs in a 50-over warm-up game in Kimberley.
Ahead of the first of the first of five one-day internationals against South Africa on Wednesday, England amassed 368-7 with Taylor's knock and Jonny Bairstow's 58 from 30 balls - including six sixes - the standout scores.
Reece Topley (3-38), Adil Rashid (3-55) and Chris Jordan (3-48) - who also took three catches - chipped in with three wickets each to dismiss the hosts for 205 inside 31 overs.
England won the toss and chose to bat first but openers Jason Roy (21) and Alex Hales (23) - searching for a return to form after a torrid Test series - fell inside the first 10 overs after breezy starts.
Taylor and Eoin Morgan (41) busily rebuilt the innings, with the England captain also scoring at a run-a-ball before David Wiese (2-73) picked him up, taking a smart caught-and-bowled chance.
A couple of useful cameos from Moeen Ali (28 off 23 balls) and Jos Buttler (20 off 21) kept the scoreboard ticking over before Bairstow blasted his way to fifty.
He hit back-to-back sixes first off Wiese, and then Dean Elgar, to bring up his half century and England's 300, but was bowled by the part-time spinner next ball.
Taylor found another willing partner in Jordan (33 off 14), and while he was dismissed in the penultimate over, Jordan's four fours and two sixes helped England to an imposing 368-7.
Topley took two early wickets, removing Test opener Elgar and Qaasim Adams either side of David Willey (1-23) clean-bowling Reeza Hendricks to reduce South Africa to 44-3.
After Rashid added Khaya Zondo cheaply - Jordan's third catch - Theunis de Bruyn (73no) and Dane Vilas (40) offered some resistance in a 73-run partnership for the fifth wicket.
Jordan then took his first wicket with the ball in hand, bowling Vilas, and the innings was wrapped up a mere 10 overs later, as he and Rashid ran through the tail, before Topley took the final wicket to cap an emphatic win.
Watch England's five-match ODI series and two-match T20I series, live on Sky Sports 2, starting with the first ODI, in Bloemfontein, from 11am on Wednesday.