Lionsgate’s action movie “Midway” is topping expectations and is expected to take the No. 1 spot at the box office over supernatural thriller “Doctor Sleep” with about $21 million for the weekend, early estimates showed Friday.

“Doctor Sleep” is heading for about $18 million at 3,855 locations, coming in well under expectations of $25 million to $30 million. Universal’s launch of romantic comedy “Last Christmas” is in line with forecasts at about $13 million from 3,448 screens, battling for third place with Paramount’s opening of family comedy “Playing With Fire” and its second weekend of “Terminator: Dark Fate.”

“Midway,” directed by Roland Emmerich, had been expected to launch in the $13 million range at 3,242 North American sites. The film recreates the 1942 Battle of Midway, a key early victory for the Allies in World War II that took place six months after Japan’s attack on Pearl Harbor.

“Midway” has been timed to take advantage of the Nov. 11 Veterans Day holiday. The early performance is a heartening sign for the $100 million production, one of the most expensive independent movies ever made. “Midway” earned $925,000 at 2,600 locations from Thursday night previews. Critics have been unimpressed with a 35% score on Rotten Tomatoes.

“Doctor Sleep,” starring Ewan McGregor, is directed by Mike Flanagan (“The Haunting of Hill House”) from his own script, based on Stephen King’s 2013 novel. The story, a sequel to “The Shining,” centers on Danny Torrance, who struggles with childhood trauma, alcoholism and his psychic powers. The follow-up has evoked mostly positive reviews and holds a 75% score on Rotten Tomatoes.

“Last Christmas” teams “Game of Thrones” star Emilia Clarke with “Crazy Rich Asians” leads Henry Golding and Michelle Yeoh. Paul Feig directed, and Emma Thompson, who also appears in the film, wrote the screenplay with Bryony Kimmings. It has a $30 million budget, and Universal is hoping “Last Christmas” will have a long life during the holiday season.

“Playing With Fire” is looking like an over-performer following forecasts of $7 million to $10 million from 3,300 theaters. The film, catering to families, cost $30 million to make. John Cena stars in “Playing With Fire,” a PG movie about a group of elite firefighters who wind up have to babysit several adorable children.