The Royals had a terrific chance to take the lead in the 11th minute when John Swift found the head of Liam Moore from a dangerous free kick, but the captain's effort just clipped the outside of the post.
Chelsea should have levelled in the 17th minute when Zappacosta picked out Tiemoue Bakayoko inside the penalty box, but the midfielder lifted his effort over the crossbar from a dangerous position.
Reading continued to create opportunities of their own, though, with Meite heading just over the crossbar from another dangerous corner with Willy Caballero nowhere near.
An end-to-end game continued to produce exciting moments as Danny Loader struck over the Chelsea crossbar in the period that followed, before Zappacosta just failed to pick out Olivier Giroud down the other end.
Giroud had a stunning chance to send Chelsea ahead in the 36th minute after meeting a free kick from Barkley, but the Frenchman somehow headed wide of the post from close range, before Kenedy had a powerful strike deflected just wide of the goal moments later.
Kenedy was not to be denied, though, and scored a second for Lampard's side in the 42nd minute when his strike from distance proved to be too much for Virginia between the home team's sticks.
Both managers made wholesale changes at the break, with Caballero the only Chelsea player to remain on the field while Omar Richards was the only player for the hosts to stay in the action.
Michael Olise brought a smart save from Caballero early in the second period as Reading chased a leveller, which ultimately arrived in the 50th minute when Michael Morrison tapped home a corner from close range.
David Luiz struck one against the crossbar in the 54th minute during an open period and Chelsea scored twice in the spell that followed to all but take the game away from Reading.
The away side's first came from Mount in the 57th minute when the attacker pounced on a loose ball before striking into the back of the net, before the 20-year-old grabbed his second shortly after as a terrible mistake from Reading goalkeeper Samuel Walker presented Michy Batshuayi with the ball.
Luiz headed just wide of the Reading goal moments later as the Blues looked for more goals, but Reading were still carrying a threat of their own down the end of the field. Indeed, the Royals scored a third in the 71st minute courtesy of a fine Sam Baldock finish.
Tammy Abraham forced a smart save from Walker as the game headed for its final 10 minutes, but 4-3 was how it finished at the end of a brilliant pre-season clash.
Next up for Chelsea is a friendly against Red Bull Salzburg on Wednesday night, while Reading will begin their 2019-20 Championship campaign at home to Sheffield Wednesday on Saturday.
READING FIRST-HALF XI: Virginia; Yiadom, Moore, Mcintyre, Blackett (Richards 31'); Swift, Rinomhota; Barrow, Barrett, Meite; Loader
READING SECOND-HALF XI: Walker; Howe (Watson 71'), Richards, Miazga, Morrison; Adam, Holsgrove, Olise, East; Novakovich, Baldock
CHELSEA FIRST-HALF XI: Caballero; Zappacosta, Christensen, Tomori, Alonso; Drinkwater, Bakayoko; Pulisic, Barkley, Kenedy; Giroud
CHELSEA SECOND-HALF XI: Caballero (Cumming 63'); Azpilicueta, Luiz, Zouma, Emerson; Jorginho, Kovacic; Mount, Batshuayi, Pedro; Abraham