Hamburg SV had 31.8 percent of the ball on Saturday and still walked away with the win. That's the short version. The longer one is about Albert Grønbaek getting booked in the 10th minute and then spending the next 80 spending the rest of the night making Cologne pay for every mistake anyway.

Hamburg came into this one having lost three of their last five. Cologne, despite a loss in their most recent outing, had won two on the bounce before that. The form said this should have been a Cologne afternoon. It wasn't.

The Goals That Settled It

Groønbaek's yellow card early on looked like it might limit what he could do — and for most of the first half, Hamburg were content to sit deep and absorb. But just before the break, he found Nicolás Capaldo in the box, and Capaldo got his head on it. 1-0 Hamburg, 44th minute.

Four minutes into the second half, Grønbaek did it again. This time Yussuf Poulsen was on the end of it, and suddenly Hamburg were two up despite barely touching the ball. Cabal, that was when the match effectively turned into a rearguard action.

Cologne had 68.2 percent possession on the night and 18 shots. Hamburg had 12, but seven were on target to Cologne's five — and that gap in efficiency is the whole story. El chispudo de Grønbaek, delivering two assists from what felt like nothing, while his side ceded territory almost completely.

Cologne picked up three yellows in the second half — Gideon Mensah in the 54th, Ísak Jóhannesson in the 77th, Ellyes Skhiri in the 84th — which tells you something about how frustrated they were getting. All that possession, all those corners, and Hamburg's goalkeeper kept making saves. Five of them.

The Final Minutes

Skhiri, booked just six minutes before the whistle, still had enough in him to set up Ragnar Ache in stoppage time. Ache headed it home in the 90th to make it 2-1 and give the scoreline a flattering look for Cologne that the run of play didn't really justify.

Hamburg held on. Barely, but they held.

For Hamburg, this is exactly the kind of result that can shift a season. They'd lost three straight before a draw and a win steadied things, and now they've backed that up against a side that controlled the game for long stretches. Whether they can sustain it with that level of possession conceded is the real question — you can't build a season on 267 passes and hope the other team keeps missing.

Cologne will feel the hurt of this one. They did everything right in terms of controlling the tempo and still left with nothing. Skhiri's late booking was needless, Ache's header came too late, and now they've lost back-to-back after a promising run. The margin between their performances and their results is starting to look uncomfortably wide.

Follow live scores and results across every major competition on the FutbolToday homepage, and find more analysis in our guides.