In order to keep city rents broadly affordable, landlords will be barred from raising them by more than ten percent above the local average for new tenants.
The law aims to alleviate exorbitant rental increases in Berlin, Munich, Hamburg and other popular cities which are pricing especially students and young families out of the market.
"The 'rental price brake' will help keep rents affordable for average wage earners," said Justice and Consumer Protection Minister Heiko Maas, adding that commonly seen rental hikes of 30 to 40 percent were "unacceptable".
Under the new law, which is set to stay in effect until 2020, property owners must also pay for estate agent fees, a charge so far normally levelled on tenants.
Newly constructed or extensively renovated buildings will be exempt from the ten percent cap, so as not to discourage new property construction in cities with apartment shortages.
The opposition ecologist Greens party and the far-left Linke party have criticized those exemptions, saying they would negate the intended effect of bringing down rents as expensive new luxury apartment blocks drive up average rents.
The rental cap was first proposed in last year's election campaign by the centre-left Social Democrats, who are now the junior partners in conservative Chancellor Angela Merkel's 'grand coalition' government.
The law will apply only in "highly strained rental property markets", which are to be determined by Germany's 16 states.
States will calculate how much local rents are above the national average and factor in occupancy rates and whether areas are experiencing a large influx of residents.
The German Tenants' Association praised the reforms as "an important step to limit drastic rental increases especially in large cities, densely populated areas and university towns".
But its director Lukas Siebenkotten also called for improvements to the bill, which must be passed by both houses of parliament, especially to clarify how breaches should be punished.