Josip Ilicic scored the only goal of the game after only 10 minutes to lift the hosts out of the bottom three on goal difference.
Defeat left Inter in seventh, two points off a Europa League place.
The hosts went into the match unbeaten in four games and their confidence was evident in a bright start.
Santiago Garcia raced past Javier Zanetti before laying the ball back for Fabrizio Miccoli, whose 25-yard effort brought a diving save out of Samir Handanovic.
And Palermo were soon ahead, Garcia picking out Miccoli inside the area this time and his pass set up Ilicic, who found the bottom left corner.
Miccoli was looking particularly lively and he fired another shot from outside the area narrowly over.
The former Italy striker then linked up again with Ilicic, who went for placement over power and his shot was saved by Handanovic.
Tommaso Rocchi headed over from a corner as Inter enjoyed a rare promising moment, but Palermo ended the half on the up with Miccoli again working Handanovic.
The home side did not let up after the break, Michel Morganella shooting over.
Mateo Kovacic went close at the other end, while Matias Silvestre, on loan at Inter from Palermo, headed just wide from an Alvaro Pereira corner.
Handanovic was still the busier keeper, though, and he made a fine fingertip save to keep out another Miccoli drive.
Ricky Alvarez twice shot high from promising positions as Inter saw the chances of snatching a draw disappear.
Instead Handanovic was called on late on to save from Abel Hernandez to keep the deficit to one.