Worcestershire 255 for 9 beat Somerset 206 for 9
Somerset crashed to only their second Clydesdale Bank 40 defeat of the season despite a century from England one-day wicketkeeper Craig Kieswetter against Worcestershire at New Road.
Kieswetter blasted his sixth one-day century from just 97 balls which threatened to take Somerset to an unlikely win, but Worcestershire held their nerve to secure a 49-run victory, their third in a row in the competition since Daryl Mitchell took over as their captain three weeks ago.
Somerset's defeat was not too costly as they had already secured their place in the semi-finals, but they will now need to beat Glamorgan in their final group match at Taunton on Saturday to ensure they have a home tie.
Shakib Al Hasan's aggressive 91 from just 68 balls gave Worcestershire a competitive total of 255 for nine on a used pitch but the Bangladeshi allrounder was unable to bowl or field having suffered a hip injury late in his innings.
That did not look like being a handicap to Worcestershire as seamers Alan Richardson and Jack Shantry took two wickets apiece to reduce the visitors to 41 for 5.
But Kieswetter led a bold fightback with support from Peter Trego in a sixth-wicket stand of 109 in 21 overs. Kieswetter dominated, straight driving three sixes and placing the ball cleverly in his first century since a one-day international against Bangladesh in Chittagong in February.
With England's squad for the forthcoming Twenty20 and one-day internationals against Pakistan set to be announced, Kieswetter's commanding century could not have been better timed but it was not enough to save Somerset from defeat.
Trego holed out to long off trying to force the pace and Kieswetter was held shortly after he completed his century by Richardson running back from mid-off.
Worcestershire had sufficient bowlers to cope without Shakib in the field but they were indebted to him for sustaining an innings that started to sag after the departure of Moeen Ali.
Moeen raced to a 54-ball half-century but was bowled off stump driving at Zander de Bruyn when well set. But Shakib played some audacious strokes, including a scooped four over Kieswetter off Ben Phillips, before he was forced to call for a runner after he had on-field treatment for his injury.
Shakib was bowled giving himself room against Alfonso Thomas when a century was in sight. Thomas finished with four for 49 but was eclipsed by Shantry, who had dangerman Marcus Trescothick and De Bruyn taken by teenage wicketkeeper Ben Cox in his first spell. Phillips clipped Shantry to midwicket when he returned as Somerset drifted to 206 for 9.