Romantic drama “The Fault in our Stars” seduced more fans than Tom Cruise’s latest action flick to top North America’s weekend box office at the weekend, industry data showed Monday.

The movie, based on a popular young adult novel by John Green about teenagers who meet at a cancer support group, raked in $48 million in its opening weekend. That pushed last week’s number one “Maleficent” — starring and produced by megastar Angelina Jolie in a modern retelling of the life of Sleeping Beauty’s arch-nemesis — down to the number two slot.

The wicked witch who has haunted generations of children earned a still impressive $34.3 million in its second weekend in theaters, industry tracker Exhibitor Relations said. Cruise meanwhile had to settle for third place for his new release “Edge of Tomorrow,” in which he stars as a soldier caught in a time loop as he battles aliens. The film earned $28.8 million.

Another time-bending movie, “X-Men: Days of Future Past,” fell to fourth place with only $15.2 million in its third weekend out. And cowboy comedy “A Million Ways to Die in the West,” which stars comedian Seth MacFarlane as a sheep farmer in 1880s Arizona, sank to fifth with $7.3 million in ticket sales. “Godzilla,” which features “Breaking Bad” star Bryan Cranston as a tortured Japanese-speaking scientist battling to save humanity, was in sixth with $6.1 million.