However, the Cats' 16.11 (107) to 11.7 (73) win was blighted by an ankle injury to speedster Travis Varcoe.
The injury drama had little impact on the scoreboard during the first half, as the Cats cruised to a 31-point lead.
Watch BulldogsTV match highlights from the Bulldogs and Cats clash at Simonds Stadium on the media player above.
But the Bulldogs used the advantage of a strong breeze to close within 21 points at the last change, and the margin was only 15 points when Jarrad Grant kicked the opening goal of the final term.
But Geelong, which was without skipper Joel Selwood (rested) and late withdrawals Matthew Scarlett (ankle) and Taylor Hunt (groin), steadied from there.
Although far from convincing, the Cats did enough to record their 14th win of the season, which keeps alive their hopes of snaring a home elimination final.
Key forward Tom Hawkins, who was picked up by Jordan Roughead, led the way on the scoreboard.
Hawkins booted four majors, taking his season tally to 58 (Coleman Medal leader Matthew Pavlich, a late withdrawal from Fremantle's side, is on 60), while Paul Chapman, Harry Taylor and Joel Corey bagged two.
The Bulldogs won plenty of the ball - the final possession count was 425 to 383 in their favour - but they struggled to get it past half-forward for large periods of the match.
Midfielders Matthew Boyd and Ryan Griffen were tireless as usual, while Adam Cooney showed flashes of his best form, Grant finished with three goals and Zephi Skinner took a number of strong marks.
The Dogs complete their season with a trip to the Gabba to take on the Brisbane Lions next Sunday.
GEELONG 3.2 8.4 10.8 16.11 (107)
WESTERN BULLDOGS 1.0 3.3 7.5 11.7 (73)
GOALS
Geelong: Hawkins 4, Corey 2, Chapman 2, Taylor 2, Christensen, Duncan, Podsiadly, West, Stokes, Hunt
Western Bulldogs: Grant 3, Howard 2, Cooney, Giansiracusa, Jong, Griffen, Howard, Higgins
BEST
Geelong: Kelly, Duncan, Mackie, Hunt, Taylor, Enright, Bartel, Chapman
Western Bulldogs: Boyd, Griffen, Murphy, Wood, Cooney, Skinner, Djerrkura
INJURIES
Geelong: Scarlett (ankle), Hunt (groin), Varcoe (ankle)
Western Bulldogs: Lake, Johannisen
SUBSTITUTES
Geelong: Travis Varcoe replaced by Billie Smedts at quarter-time
Western Bulldogs: Daniel Giansiracusa replaced by Jarrad Grand in the third quarter
Reports: Nil
Umpires: S.Stewart, H.Ryan, B.Ryan
Official crowd: 18,047 at Simonds Stadium