Bairstow shared a second-wicket stand of 144 with James Vince, who made 69, before falling for 123, but smooth unbeaten forties from Gary Ballance and Varun Chopra completed victory with 12 deliveries to spare.
Runs for Ashes squad members Ballance, who hit 89 in the first innings, and Bairstow, could boost their chances of playing in the third Test versus Australia, which starts tomorrow.
The win represents a successful end to the EPPs’ month-long stay in Australia, during which they also drew with a Queensland Second XI in Tim Bresnan’s comeback from injury.
The hosts this morning extended their overnight 167 for six to 248 for eight declared, James Harris ousting Tom Triffitt for 68 and Tim Armstrong for 99 after they had added 112 for the seventh wicket. Armstrong’s departure prompted the declaration as Tymal Mills returned an impressive 3-19 from 12 overs.
Bairstow dominated an opening stand of 70 with fellow Yorkshire batsman Alex Lees, who fell to James Boyland for 26.
The wicketkeeper-batsman and Vince then underpinned the pursuit as Bairstow raised a 119-ball ton before being stumped off former Australia spinner Michael Beer, the home captain.
Vince succumbed to Armstrong and Jos Buttler to Nathan Rimmington with the score on 234 before Ben Foakes and Moeen Ali went cheaply to Rimmington and Beer respectively.
That brought Ballance and EPP skipper Chopra together with 85 needed and they held their nerve for 48 and 46 respectively with two overs of 77 remaining.
Result: EPP won by 4 wickets
Western Australia XI – 319 for 8 declared (James Harris 3-58, Tim Armstrong 75)
86 Overs – 1st Innings
England Performance Programme – 220 for 2 declared (Robson 108*, Balance 89, Dixon 2-52)
49.5 overs – 1st Innings
Western Australia XI – 248 for 8 (Armstrong 99, Mills 3-19)
65 overs – 2nd Innings
England Performance Programme – 348 for 6 (Bairstow 123, Vince 69,)
75 overs – 2nd Innings