Eight Swiss players and 11 staff suffered from a stomach ache in the build-up to the match, but they managed to put that behind them to produce a fighting display.
After a cautious first half, Fridolina Rolfo put Sweden ahead eight minutes into the second half, but Switzerland pulled back immediately two minutes later through Ramona Bachmann.
Bennison’s winner gave Sweden their first win of the tournament, while Switzerland remain winless.
Sweden started well but got scared after nine minutes when Switzerland were awarded a penalty for a foul but, after consulting the pitch controller, the referee overturned his decision.
Rolfo caused problems for the Swiss and fired a threatening cross that Kosovare Asllani failed to reach, before having her own chance but the shot was well blocked.
Bachmann had the chance after half an hour, running into plenty of space, but his shot was easily held by Hedvig Lindahl at the near post.
Rolfo went close just after the break when his effort narrowly missed the top corner and Stina Blackstenius threatened soon after in a one-on-one with Gaelle Thalmann, but the keeper did well to save.
The initial pressure paid off for Sweden when Rolfo put them in front, finding space down the left and slotting the ball into the bottom left corner.
Switzerland reacted immediately on the restart as Sweden were unable to eliminate the danger in the box and the ball found Bachmann on the edge of the box, who hit a nice curled shot into the top corner superior.
Switzerland continued to make the most of their chances and Ana-Maria Crnogorcevic delivered a weak effort that forced Lindahl to react, swung the ball with a low dive to her right.
But Bennison’s brilliant strike gave Sweden a precious win, smashing the ball outside the box.
Sweden nearly added a third in the 87th minute when Rebecka Blomqvist found the bottom corner but the goal was ruled out for offside.
Additional PA Sport reporting.