Premier League: Everton 2 West Ham 1
The midfielder finished off a flowing move with 17 minutes remaining at Goodison Park, tapping home from close range after a superb low cross from Samuel Eto'o.
Romelu Lukaku had broken the deadlock midway through the first half with a poacher's finish, latching onto a deflection to net his fifth league goal of the season.
Mauro Zarate levelled for West Ham after the break, five minutes after coming on, albeit with the aid of a deflection.
However, in a frantic end the hosts grabbed the winner, with Osman netting his first league goal of the season to lift Everton into eighth place.
Defeat ends West Ham's five-match unbeaten run in the league, and sees them drop out of the top four.
Roberto Martinez made four changes to Everton's starting line-up, with Tony Hibbert, Osman, Kevin Mirallas and Steven Naismith all starting, but James McCarthy retained his place despite having withdrawn from the Republic of Ireland squad that played Scotland and the United States after suffering a hamstring injury.
The visitors were also forced into changes as Sam Allardyce brought in five new faces, including Andy Carroll making his first start of the season after finally shaking off his long-standing ankle problem.
Carlton Cole was also named in attack as Diafra Sakho and Enner Valencia missed out.
With chances at a premium in the early exchanges it fell to Osman to create the first opening for the hosts in the 18th minute.
The 33-year-old played a neat pass for Seamus Coleman to get in behind the West Ham defence and he cut the ball back to Naismith, but the Scotland international blazed over while leaning back.
However, eight minutes later that miss was forgotten as Lukaku pounced to open the scoring, the striker lashing a shot past Adrian after Ross Barkley's effort had been blocked by Winston Reid.
Carroll had his first real sight of goal on the half-hour mark when he rose to meet a right-wing cross, but Tim Howard was able to gather easily.
Tempers flared in the closing minutes of the half as McCarthy was booked for a challenge on Morgan Amalfitano, while Reid was also cautioned in the melee that followed.
The introduction of Zarate six minutes after the break had an almost immediate impact for the visitors, the Argentine striker's low shot looping over Howard and in after deflecting off Phil Jagielka.
Having spent large parts of the first half chasing the game, West Ham were now making all the running, and after 68 minutes Amalfitano went agonisingly close with a low drive across goal.
But despite looking the more likely side to score, West Ham found themselves behind with 17 minutes left when Everton substitute Eto'o laid a perfect cross into the path of Osman, the midfielder making no mistake.
James Collins could have levelled within a few seconds of the restart, but the defender's attempt to turn in Matt Jarvis' effort was saved by Howard.
Carroll had a late chance to rescue a point for the visitors, but his header sailed over and Everton hung on to record a fifth consecutive win over West Ham.