Free movement of goods will remain and commuters will be allowed to cross borders for work.
However, closing borders was not only to contain the Covid-19 epidemic but also to prevent panic bulk purchases by foreigners, which was reportedly causing supply problems in areas around the borders, Bild said.
Germany has 5,426 coronavirus cases, with 11 deaths, according to official figures.
Chancellor Angela Merkel agreed the move, which police will enforce, with the country’s regional leaders.
Berlin and Cologne decided on Saturday to close all bars, clubs, cinemas, theatres and concert halls with immediate effect in at attempt to stop the spread of the coronavirus.
The capital and many states are shutting schools next week until the end of the Easter holidays.
Ms Merkel says 70 per cent of the country’s population is likely to become infected.
She has already urged people to reduce social contact, including children stopping visiting their grandparents.
“Everyone can contribute with his or her personal behaviour ... so that the speed at which people become infected slows down so that our healthcare system is not overburdened,” she said.
Neighbouring Austria is asking people not to leave the house unless for work or food shopping.
Join our new commenting forum
Join thought-provoking conversations, follow other Independent readers and see their replies