On 12 minutes, some good work between Garcia and Aaron Mclean won Hull City a free kick from 25 yards out, but the chance was wasted as Tom Cairney hit it into the wall.
After 23 minutes, Corry Evans fed Garcia down the channel before the Australian cut inside and shot low. Maik Taylor was equal to the drive, blocking with his outstretched leg.
Despite the early chances falling to the away side, Millwall struck first on 25 minutes. A corner flew over Vito Mannone and Harry Kane held off his marker to head home from close range.
The home side nearly grabbed a second when Cameron Stewart lost possession to Kane, who advanced forward before firing low at Mannone.
On 33 minutes, Kane missed an even better chance when Tony Craig's cross went right through Hull's six-yard box. The striker put too much on his effort and sent it over.
Millwall began to look dangerous each time they went forward, with Hull struggling to contain the sweeping attacks.
The sides went in at half time with the score still at 1-0.
The opening stages of the second half saw both sides struggle to gain any kind of control.
Kane had a header cleared by Hull's defence on 51 minutes. A minute later, Matt Fryatt's shot went wide as Hull looked to get back into the game.
Millwall were awarded a penalty after 80 minutes when Liam Cooper brought down Andy Keogh. Keogh took the spot kick and put it past Mannone to make it 2-0.
The home side saw out the game to claim a 2-0 win and all three points.