American Sniper, Clint Eastwood's war drama that gained middling reviews though continues to storm the U.S box office, has set a new record for a Super Bowl weekend. The film starring Bradley Cooper  took $31.85 million  to secure the highest ever total taken over the sporting weekend, beating out Miley Cyrus's Both Worlds Concert Tour movie by $700,000.

American SniperBradley Cooper [L] and Sienna Miller [R] in American Sniper

The Oscar-nominated drama, criticized in some quarters for its flag-raising patriotism, has clearly chimed with the American public and has taken $248.9 million domestically in just three weeks. 

The Super Bowl - won this year by the New Orleans Patriots - is traditionally problematic for studios, though Eastwood's movie showed no signs of slowing up. Other films were not so successful and Michael Bay's time-travelling tale Project Almanac took just $8.5 million in third place. It was beaten to second spot by the critically acclaimed British animation, Paddington.

More: Is American Sniper's Chris Kyle really a coward?

Kevin Costner's drama Black or White opened in fourth with $6.4 million, while Jennifer Lopez's thriller The Boy Next Door took $6 million to take its total to $24.6 million.

President Obama has praised American Sniper for its "complex, emotional depiction of a veteran and his family... [it] reflects those wrenching stories that I've heard - the complex journeys that our men and women in uniform endure."

"The complicated moral decisions they are tasked with every day. The stresses of balancing love of family with a love of country. And the challenges of transitioning back home to their next mission in life," he said.

"Eastwood leaves a lot on the table when the big, difficult questions come up, but when the bombs start exploding, this movie is locked in and purposeful," said critic Mathew DeKinder.

More: American Sniper: Why Chris Kyle's wife is facing $1.4 million bill