Soldado finished off a fine counter-attack after 28 minutes to keep Tottenham in fifth place on to 53 points from 28 matches.
Chelsea top the table with 63 points, followed by Liverpool and Arsenal on 59, while Manchester City have 57 and two games in hand on the sides around them.
The result leaves Cardiff one point and one place above Fulham at the foot of the table.
Yesterday's other games ended in a 4-1 win for Aston Villa over Norwich City, while Swansea City and Crystal Palace drew 1-1.
Norwich took the lead after three minutes at Villa Park when Wes Hoolahan, who Villa wanted to sign in the January transfer window, stabbed home from 10 yards out.
But the game turned on its head in a 16-minute spell when the home side scored four times.
The Belgian striker Christian Benteke opened their account with a scissor-kick after 25 minutes before he headed in to make it 2-1 two minutes later. Leandro Bacuna then struck with a shot that went in off the base of a post after 37 minutes and Villa added a fourth when Sebastien Bassong bundled into his own net four minutes later.
Swansea City took the lead against Palace through Jonathan de Guzman after 25 minutes but the visitors equalised when Glenn Murray scored an 83rd-minute penalty after Chico Flores was sent off for denying the striker a scoring chance.