The 14.15 (99) to 8.13 (61) victory keeps the Cats inside the top eight, and lifts their win-loss record to 8-5.
But in a match which was like the day's weather - mostly bleak, sent all but the most hardcore ducking for cover, and with few moments of sunshine - the Cats did what they needed to do to keep their flag hopes alive.
Harry Taylor booted three goals, while captain Joel Selwood with 27 possessions and two goals and midfielders Jimmy Bartel and James Kelly were among the Cats' best.
For both clubs it continued the themes of their seasons - another win without great authority for Geelong, another honourable loss for Port Adelaide.
But Cats coach Chris Scott can at least console himself with a place in the top eight despite improvement he believes is still to come - and hopefully will come quickly.
"We thought for the most part we were pretty good, but not much more than that," Scott said.
"We dominated the game - I would have liked to won by a little bit more but I don't want to get too picky at this time of year.
"The team's changing, the list's changing. Our performance is going to waver a little bit. But we're still pretty confident our top level is pretty good."
Geelong had the better of the opening term, with Taylor booting an early goal and the Cats holding a seven-point lead at quarter-time.
As the weather closed in with intermittent rain mixing with bitter cold, the second quarter was difficult to play and watch.
It took 17 minutes for the term's opening goal to be kicked - Geelong skipper Selwood booting one, then another in quick succession.
The Cats finished with the only three majors of the term, as Port were held goalless.
Geelong stretched their lead to 32 points with two of the opening three goals of the third quarter.
But Port outscored the Cats four goals to three in the term, including three of the last four kicked, to reduce the deficit to 19 points by the final break.
Geelong then found a higher gear to make the game safe early in the final term.
The opening goals of the quarter to Steven Motlop and two more to Taylor, who moved from his regular spot in defence into the forward line in the second half, sealed the Cats' win.
Justin Westhoff and Matthew Lobbe finished with two goals apiece for Port.
Port coach Matthew Primus believed the fourth quarter opening, and some lack of decision-making polish despite winning the clearances, were pivotal in his side's defeat.
"I always think coming into quarters is crucial, especially if you're away from home, to get some momentum going your way," he said.
"We've improved, we're showing glimpses and patches. But we're just not doing it for long enough to get us over the line."
Port are now 4-9 and remain anchored in the bottom four.