The former England player opened the batting and made 101, with nine fours, before he was stumped off Ashar Zaidi.
Laurie Evans provided late impetus with an unbeaten 70 off 53 balls as they posted a total of 283-7 at Edgbaston.
Tom Westley made 61 for Essex and Ryan ten Doeschate was last to go for 50 as they were all out for 213.
It was a disappointing batting effort which left 7.5 overs unused, and Warwickshire will now be at home to Somerset - who beat Worcestershire by nine wickets - on 28 or 29 August, with a place in the Lord's final at stake.
With England seamer Chris Woakes conceding 47 from seven wicketless overs, it was Warwickshire's spinners who undermined the Essex run chase after openers Westley and Nick Browne put on 75 in 12 overs, claiming eight wickets between them.
Browne was stumped off Ateeq Javid and Jesse Ryder, Jaik Mickleburgh and Zaidi were all guilty of poor shots as numbers three to six in the order all failed to reach double figures.
Essex slumped to 134-6 in the 28th over, with leg-spinner Josh Poysden claiming 3-46, and it was Jeetan Patel (3-32) who ended the game by having ten Doeschate lbw after he reached a run-a-ball half-century.
Earlier Trott, who now averages 77.80 in this season's competition, anchored the Warwickshire innings after skipper Ian Bell was caught behind for a fourth-ball duck.
He shared a stand of 136 with Tim Ambrose (60) and although his dismissal sparked a mini-slump from 227-3 to 257-7, Evans hit three sixes and three fours to boost the total in the closing overs.
Jonathan Trott made his third One-Day Cup century in four innings as Warwickshire reached the semi-finals with a 70-run home win over Essex.