The deal, announced just before midnight Saturday, comes after disruptive short-term strikes by teachers and others designed to put pressure on the government.
The ver.di union says teachers, police, emergency workers and other public servants will first get a 3.2-percent raise retroactive to Jan. 1. Next Jan. 1, a 3.2 percent increase will follow, and then a 1.4 percent increase on Jan. 1, 2021.
Certain groups, like health care workers, will receive additional payments.
The agreement is also expected to be extended to 2.3 million additional government employees represented by other unions, which is common German practice.