Felix again scored early for Atletico following a bad error from Cadiz goalkeeper Jeremias Ledesma who mishandled the ball inside the area and served him a goal on a platter of gold.
The Portuguese forward has five goals in his last five games in all competitions and has been instrumental in reviving Atleti's title hopes after a poor start to the season. Real Madrid lead the standings on 63 points, 12 ahead of Diego Simeone's side.
Atletico were pegged back when veteran Alvaro Negredo headed in an equaliser for Cadiz from a counter-attack on the stroke of halftime. However, the champions retook the lead in the 68th minute with Rodrigo de Paul scoring from a rebound.
Atletico ended the game with 10-men after substitute Javi Serrano was shown a straight red card after a violent challenge two minutes from time.
They had an earlier red card shown to Reinildo Mandava at the end of the first half, but the video referee assistant intervened and referee Pablo Gonzalez changed the call, giving Atleti's defender only a yellow card.
Cadiz fought a good fight until the end and almost scored an equaliser to draw the game when Luis Hernandez struck from a rebound, only for defender Jose Maria Gimenez to make a goal-line clearance.
In the dying minutes of the match, Cadiz player and an assistant coach were shown a red card for dissent after Luis Suarez tried to waste time by juggling an extra ball that rolled on the field.
"As the season gets closer to the end every game will be more difficult because every team will be playing for something. It was a tough match but we kept it together and got three very important points," De Paul told reporters.
Atletico now travel to Manchester where on Tuesday they will face Manchester United in the second leg of their Champions League last-16 clash after drawing 1-1 in Madrid two weeks ago.