Cardiff lost ground in their pursuit of automatic promotion to the Premier League after being held to a 0-0 draw at home by Millwall.
Despite creating the chances needed to secure all three points, a fine performance from Millwall goalkeeper Jordan Archer means they sit third in the Sky Bet Championship having scored only once in four games.
But for Archer's resilience, Cardiff could have built a convincing lead by half-time.
The hosts first truly threatened when Junior Hoilett's ball-juggling created space in the area for Lee Peltier to cross to Danny Ward, whose shot from in front of goal forced Archer into a reaction save.
From space in midfield, Sol Bamba then found Ward in the area with a fine through-ball, but the striker again saw his low shot well saved after controlling possession.
By then Millwall's Lee Gregory had wasted a promising chance when shooting harmlessly over the crossbar despite time and space in front of goal, and Cardiff's Neil Etheridge had saved well from Steve Morison after Bamba's misplaced back-pass had sent him one-on-one.
They regardless lacked the hosts' creativity, which was again demonstrated when substitute Callum Paterson's run down the right wing and cross to Hoilett ended with the diving Archer saving the winger's close-range shot.
Early in the second half Gregory appealed for a penalty when being tripped by Sean Morrison inside the area, and Steve Morison again tested Etheridge with a low drive, but thereafter a goal rarely looked likely for either team.