Tom Curran strengthened his claim for a spot in England's Twenty20 side to face South Africa with a strong performance in a 40-over intra-squad match at Newlands, Cape Town.
Curran took 4-25 as Team Buttler were bowled out for 255 before hitting 31 as Team Morgan fell for 205.
Joe Root, who is not part of the T20 squad, also impressed with 77 for Team Buttler - along with the wicket of Ben Stokes - while Chris Woakes top scored for Team Morgan with 55 from 41 balls.
England play their first match of the T20I series against South Africa on Friday, November 27, live on Sky Sports Cricket.
The 23-man touring party was split into two teams for the intra-squad match, with captain Eoin Morgan and his deputy Jos Buttler leading the sides.
Test captain Root, who is set to feature in the one-day internationals against South Africa, showed encouraging signs in a run-a-ball knock of 77.
Sam Billings (52) shared a century stand with Root and hit sixes off Jake Ball and Moeen Ali before he was caught by Ali off the bowling of Ben Stokes.
- South Africa vs England homepage
- How to watch every ball on Sky Sports
Dawid Malan made 28 while opening partner Jason Roy and captain Buttler were both dismissed for 16.
Curran was the pick of the bowlers with 4-25 from 6.1 overs, removing Buttler, Lewis Gregory, Chris Jordan and Ollie Stone in an impressive spell.
Mark Wood picked up the wickets of Root, Malan and Sam Curran as he finished with 3-48.
Team Morgan lost three early wickets in reply as Jonny Bairstow (17), Tom Banton (10) and Stokes (10) were dismissed by Sam Curran, Jofra Archer and Root respectively.
Jordan then removed Morgan with his first ball to leave the score at 67-4.
Jordan followed up with the wicket of Liam Livingstone (20) before Gregory dismissed Moeen Ali (15) to put Team Buttler firmly in charge.
- Download Sky Sports Scores: Apple | Android
- The UK's No 1 scores app: Find out more
An 80-run stand between Woakes, who hit two sixes in his half century, and Tom Curran revived Team Morgan's hopes, but when they fell in successive overs the finish line was in sight.
Woakes was stumped off the bowling of Adil Rashid while Curran was caught and bowled by Olly Stone.
Gregory then removed Wood and Ball to wrap up a 50-run win.
© Sky News 2020