
Gladbach fell a goal behind at the end of the first half through Danny Da Costa and could do nothing for much of the second half against a disciplined Eintracht defence.
They had to wait until Swiss international Zakaria’s fine turn and shot from the edge of the box in the 82nd minute to avoid a second straight loss and lift them to 43 points.
Eintracht dropped to sixth place on 34.
Leipzig is two points behind Gladbach in fourth following their 3-1 win at VfB Stuttgart on Saturday.
Second-placed Bayern Munich, 3-2 winners against Augsburg on Friday, are on 48, two off leaders Borussia Dortmund who are in action against Nuremberg on Monday.