iSport driver Palmer had jumped from third to first by Sainte Devote on the opening lap, and as polesitter Stephane Richelmi gave him space, the Trident car tangled with Lotus's James Calado. A separate incident further back also left Coloni's Stefano Coletti with race-ending damage.
The greatest mayhem came at the top of the hill, as Friday race winner Johnny Cecotto (Addax) spun at Massanet and triggered a multi-car pile-up.
Championship leader Davide Valsecchi, who had lost a lot of ground at the start, was among the victims, while his DAMS team-mate Felipe Nasr was launched over the back of Ocean's Victor Guerin. Rapax duo Tom Dillmann and Ricardo Texeira were also eliminated.
Calado escaped the Richelmi tangle still in second place but with a damaged front wing. When the race got underway again after a safety car period to clean up the lap one mess, Calado initially tried to hang on in second, fending off a queue of cars.
By the time Calado was given a black and orange flag and pitted for repairs, Palmer was nine seconds clear of new second place man Max Chilton, and was able to control the rest of the race.
Carlin driver Chilton started gaining rapidly late on and got the gap down to a second by the chequered flag, but Palmer had it covered.
Giedo van der Garde took another podium for Caterham in third, unable to keep up with Chilton but eventually getting away from iSport's Marcus Ericsson.
Caterham got both cars in the top five as Rodolfo Gonzalez secured fifth. Gonzalez had Luiz Razia all over him for much of the race, until the Arden driver dropped back to focus on getting the fastest lap bonus instead, which he successfully achieved.
Racing Engineering's Nathanael Berthon held off Esteban Gutierrez (Lotus) for seventh, a battle in which Berthon's team-mate Fabio Leimer had also featured before hitting the Swimming Pool barriers.