The measures came after the number of coronavirus cases in Thailand more than doubled in three days to 177, including 30 new cases reported on Tuesday.
Prime Minister Prayuth Chan-ocha told reporters after a cabinet meeting that there would be “no complete city or country lockdown yet”.
“We’re reducing the chance of the disease spreading in high-risk places by closing them,” said Prayuth, who was wearing a face mask.
Schools and universities across the country will be closed for two weeks from Wednesday, Prayuth said.
In the greater Bangkok area, entertainment venues, including massage parlours, will also close for 14 days.
Other places including boxing rings, sports fields, horse races, will be closed in the greater Bangkok area “until the situation improves,” said Prayuth.
The order did not cover seaside resorts like Pattaya and Phuket, or the northern city of Chiang Mai.
The mid-April traditional New Year holiday, known as Songkran, would be postponed to limit the movement of people visiting their families on the holiday, Prayuth said.
The three-day holiday’s festivities, involving the extensive dousing of water by revellers, had already been cancelled.
Thailand has restricted tourist arrivals by suspending visa-on-arrival and visa exemptions for 22 countries and territories.
People arriving from six coronavirus hot spots have to show medical certificates and insurance before being allowed on flights to Thailand.
More on Covid-19
Prayuth said other events that involve big gatherings of people such as concerts and religious activities would need the approval of provincial authorities and communicable disease experts, he said.