England, set 178 to win in a match reduced by rain to 43 overs per side, finished on 178 for three at the Beausejour Cricket Ground, with 10 overs to spare.
They now face shock second round qualifiers Ireland, the country Dublin-born Joyce used to represent, in their opening Super Eight clash on Friday in Providence, Guyana.
Joyce and Kevin Pietersen, who was dropped on seven before making 56 not out, put on for 103 for the third wicket after England had wobbled at 52 for two. Paul Collingwood was unbeaten on 18.
Both England and Kenya knew a victory would see them join Group C winners New Zealand in the second stage of the World Cup.
England had an early setback when captain Michael Vaughan was brilliantly caught for one, by a diving Collins Obuya at backward point, after a Peter Ongondo delivery got 'big' on the batsman.
Ian Bell, who'd almost run himself out on 15, fell for 16 when he lofted Thomas Odoyo straight to substitute fieldsman Rajesh Bhudia at mid-off.
Pietersen then settled England nerves by getting off the mark first ball with an off-driven four against Thomas Odoyo.
Joyce, 28, cut Odoyo's fellow seamer Lameck Onyango for four and, two balls later, pulled the seamer for six.
Pietersen was then dropped off left-arm spinner Hiren Varaiya's first ball by wicket-keeper Maurice Ouma after the bowler had taken the outside edge as the South African-born batsman pushed forward.
Joyce, who only made his England debut against Ireland in Belfast in June, completed a 59-ball fifty with seven boundaries in all.
It was Joyce's fourth score of fifty or more at this level in 15 matches.
Pietersen, England's best one-day batsman, who swept Varaiya for six, reached his half-century in 54 balls with six fours.
Joyce took England to the brink of victory before he was bowled by Kenya captain Steve Tikolo's 'doosra' to leave his side 155 for three.
Earlier, Andrew Flintoff marked his England return with two wickets as Kenya were bowled out for 177.
Kenya captain Steve Tikolo top scored with 76 in an innings where no other batsman made more than Jimmy Kamande's 17.
Flintoff's Lancashire team-mate James Anderson led England's attack with two for 27. Paul Collingwood took two for 33 and Flintoff two for 35.
This was Flintoff's first match since he was stripped of the vice-captaincy and dropped from England's 51-run victory against Canada on Sunday after being one of six players fined for late night driking following the six-wicket defeat by New Zealand.
Tikolo decided to bat first on winning the toss despite the overnight rain which may have freshened the pitch.
Anderson, swinging the ball at a lively pace, made an early breakthrough when Ravindu Shah was bowled off stump for four by a delivery that kept low.
He struck again when Ouma (13) tried to loft him over mid-on only to be caught there by Collingwood.
With Kenya 99 four off 23 overs, Vaughan switched from pace to the left-arm spin of Monty Panesar.
Three balls later England had another wicket. Non-striker Collins Obuya was run out by a distance after a Tikolo-inspired mix-up when Ravi Bopara threw from short third man to Panesar.
Fast bowler Flintoff got in on the act when Odoyo was lbw for four, Kenya 112 for six in the 26th over.
Tikolo, who completed a 58-ball fifty with seven fours, should have been out to Flintoff on 52 when a miscued drive was dropped by Joyce at mid-on.
But with Tikolo playing a lone hand this did not ultimately prove to be a costly error.