About 600 firefighters are fighting blazes in the Pedrogao Grande area about 150 kilometres north-east of the capital Lisbon.
Interior Ministry official Jorge Gomes said 16 people died in their cars on a road between the towns of Figueiro dos Vinhos and Castanheira de Pera, while 23 others have been killed elsewhere.
A number of firefighters have been injured while tackling the flames. Televised images showed a huge wall of flames leaping over the top of trees in the wooded region.
The fires come amid a heatwave in Portugal which has seen temperatures soar to 40C in recent days.
Prime Minister Antonio Costa has described the situation as a "tragedy of a big dimension".
He said authorities are working to identify the victims, and Spanish rescuers are to help efforts to put out the fires.
The PM said firefighters are having difficulties in approaching the area because the flames are "very intense".
He said investigations are ongoing to determine the cause, but authorities believe the high temperatures may have played a part.
Valdemar Alves, mayor of Pedrogao Grande, said: "This is a region that has had fires because of its forests, but we cannot remember a tragedy of these proportions.
"I am completely stunned by the number of deaths."