Haynes was flawless in his maiden professional ton of 153, while his opening partner’s 123 made him the third generation of D’Oliveiras to reach three figures for Worcestershire in the one-day format.
Their 243-run partnership, a first-wicket record for the county, laid the foundations for a mammoth total of 338 for seven.
Essex collapsed to 17 for four in reply and, despite Adam Wheater’s 77, were bowled out for 156 as they fell to their highest-ever defeat. D’Oliveira completed a fine match by taking three wickets for eight runs.
Worcestershire maintained their 100 per cent record in the tournament while the Eagles lost for the first time.
Chasing Warwickshire’s 303 for six, Leicestershire were motoring at 216 for two in the 35th over but collapsed to 296 for nine, with home captain Will Rhodes taking three for 49 and George Garrett three for 50.
Warwickshire were lifted over 300 by a maiden List A century from Matt Lamb, who was unbeaten on 119 off 105 balls.
After Rob Yates’ stylish 72 off as many deliveries, Lamb and Ethan Brookes (63 off 65 balls) put on a List A sixth-wicket record stand of 153 for the hosts.
Leicestershire openers Rishi Patel (118 off 107) and Harry Swindells (69 off 71) then gave their side the perfect start with a stand of 159 in 25 overs, but some careless shots, punished by careful catching, set in motion a costly collapse.
Jack Taylor’s heroics in the final over clinched Gloucestershire’s first one-day win of the season as they beat Durham by four wickets in Scarborough.
Gloucestershire needed 336 for victory after Graham Clark’s brilliant 140 for the hosts and were in a decent position after fine innings from Ben Charlesworth (87 off 110) and James Bracey (90 off 72).
Late wickets then appeared to have halted the visitors’ charge, but Taylor turned the game in the final over, dispatching Chris Rushworth for three straight boundaries to seal an unlikely Group A win for his side.
Durham opener Clark had earlier registered his second century in a week in his side’s total of 335 for four, his 140 coming off 125 deliveries, while Gloucestershire’s Australian pace bowler Daniel Worrall bagged all four wickets for 58 runs.