ADVERTISEMENT

State of the nation, PTA-style: A review of 'One Battle After Another'

Published Sep 25, 2025 12:42 am
A scene from 'One Battle After Another'
A scene from 'One Battle After Another'

Paul Thomas Anderson (PTA) writes, produces, and directs his new film, "One Battle After Another," and it can best be described as his ‘state of the nation’ address. It’s well-crafted and entertaining, with terrific momentum and pacing, such that the nearly three hours fly by. And it may well be his most entertaining film yet, while still being thematically rich. He exposes the inherent contradictions of the contemporary American psyche, while offering a cold analysis of what is both right and wrong about it.

If PTA’s There Will Be Blood (2007) was historical and too intense. The Phantom Thread (2017) was detached and elegant; here, he combines the playfulness of Boogie Nights (1997) with a deep dive into the lives of American radicals of the late 2000s, and their struggle to grow up, age, and navigate today’s world. While Anderson adapted Thomas Pynchon’s novel Inherent Vice in a previous film, here he is inspired by some of the characters found in another Pynchon book, Vineland.

Horrifying yet funny, this film is politically charged, yet manages to work beautifully on the level of a suspense drama. And if Anderson handles the social commentary, he has found a great accomplice in lead actor Leonardo DiCaprio, who provides the heart and warmth of the film. It is a virtuoso feat of a double act, and you have to smile at how the cerebral approach of PTA is matched with the emotional heft of DiCaprio as a radical who’s gone to seed, but rises above his own issues, when his daughter is placed in danger.

As Bob (Leonardo DiCaprio) was the ballistics expert of the extremist radical group, he now drinks and smokes all day. His then fellow radical and wife, Perfidia (Teyana Taylor), left him with a daughter, and we watch the baby girl grow into a young woman, Willa (Chase Infiniti in her first movie role). Their major nemesis, and curse in life, would be Col. Steven Lockjaw (Sean Penn), a white supremacist who secretly loves ‘jungle bunnies’. Penn is truly riveting here, and if he doesn’t sweep the Best Supporting Actor races next year, I demand a recount.

Providing impactful support are the likes of Sensei Sergio (Benicio Del Toro), and Deandra (Regina Hall). And if there’s a prize for taking your breath away with her first film appearance, I would personally hand it to Chase Infiniti as daughter Willa. She can be steely, then fragile, and consistently tempestuous - there is so much depth in her portrayal that it’s downright scary.

There are hilarious, straight-faced set pieces, like when we first meet the Christmas Adventurers Club, an excuse for gathering white supremacists and racists. There’s saving the lives of migrants, and the sorry story of border crossings that persist to this day. There are the travails of solo parenting, and what happens when it’s the child also having to do the parenting.

This may well be PTA’s most accessible and commercial film, and we can only hope it does well at the box office as well. And if you don’t like the politics, enjoy the cat and mouse game that ensues, the beautiful camerawork during the car chases in the desert, and how DiCaprio will make you laugh one moment, and bring you close to tears the very next moment.

...

ADVERTISEMENT
.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1561_widget.title }}

.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1562_widget.title }}

.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1563_widget.title }}

{{ articles_filter_1564_widget.title }}

.mb-article-details { position: relative; } .mb-article-details .article-body-preview, .mb-article-details .article-body-summary{ font-size: 17px; line-height: 30px; font-family: "Libre Caslon Text", serif; color: #000; } .mb-article-details .article-body-preview iframe , .mb-article-details .article-body-summary iframe{ width: 100%; margin: auto; } .read-more-background { background: linear-gradient(180deg, color(display-p3 1.000 1.000 1.000 / 0) 13.75%, color(display-p3 1.000 1.000 1.000 / 0.8) 30.79%, color(display-p3 1.000 1.000 1.000) 72.5%); position: absolute; height: 200px; width: 100%; bottom: 0; display: flex; justify-content: center; align-items: center; padding: 0; } .read-more-background a{ color: #000; } .read-more-btn { padding: 17px 45px; font-family: Inter; font-weight: 700; font-size: 18px; line-height: 16px; text-align: center; vertical-align: middle; border: 1px solid black; background-color: white; } .hidden { display: none; }
function initializeAllSwipers() { // Get all hidden inputs with cms_article_id document.querySelectorAll('[id^="cms_article_id_"]').forEach(function (input) { const cmsArticleId = input.value; const articleSelector = '#article-' + cmsArticleId + ' .body_images'; const swiperElement = document.querySelector(articleSelector); if (swiperElement && !swiperElement.classList.contains('swiper-initialized')) { new Swiper(articleSelector, { loop: true, pagination: false, navigation: { nextEl: '#article-' + cmsArticleId + ' .swiper-button-next', prevEl: '#article-' + cmsArticleId + ' .swiper-button-prev', }, }); } }); } setTimeout(initializeAllSwipers, 3000); const intersectionObserver = new IntersectionObserver( (entries) => { entries.forEach((entry) => { if (entry.isIntersecting) { const newUrl = entry.target.getAttribute("data-url"); if (newUrl) { history.pushState(null, null, newUrl); let article = entry.target; // Extract metadata const author = article.querySelector('.author-section').textContent.replace('By', '').trim(); const section = article.querySelector('.section-info ').textContent.replace(' ', ' '); const title = article.querySelector('.article-title h1').textContent; // Parse URL for Chartbeat path format const parsedUrl = new URL(newUrl, window.location.origin); const cleanUrl = parsedUrl.host + parsedUrl.pathname; // Update Chartbeat configuration if (typeof window._sf_async_config !== 'undefined') { window._sf_async_config.path = cleanUrl; window._sf_async_config.sections = section; window._sf_async_config.authors = author; } // Track virtual page view with Chartbeat if (typeof pSUPERFLY !== 'undefined' && typeof pSUPERFLY.virtualPage === 'function') { try { pSUPERFLY.virtualPage({ path: cleanUrl, title: title, sections: section, authors: author }); } catch (error) { console.error('ping error', error); } } // Optional: Update document title if (title && title !== document.title) { document.title = title; } } } }); }, { threshold: 0.1 } ); function showArticleBody(button) { const article = button.closest("article"); const summary = article.querySelector(".article-body-summary"); const body = article.querySelector(".article-body-preview"); const readMoreSection = article.querySelector(".read-more-background"); // Hide summary and read-more section summary.style.display = "none"; readMoreSection.style.display = "none"; // Show the full article body body.classList.remove("hidden"); } document.addEventListener("DOMContentLoaded", () => { let loadCount = 0; // Track how many times articles are loaded const offset = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; // Offset values const currentUrl = window.location.pathname.substring(1); let isLoading = false; // Prevent multiple calls if (!currentUrl) { console.log("Current URL is invalid."); return; } const sentinel = document.getElementById("load-more-sentinel"); if (!sentinel) { console.log("Sentinel element not found."); return; } function isSentinelVisible() { const rect = sentinel.getBoundingClientRect(); return ( rect.top < window.innerHeight && rect.bottom >= 0 ); } function onScroll() { if (isLoading) return; if (isSentinelVisible()) { if (loadCount >= offset.length) { console.log("Maximum load attempts reached."); window.removeEventListener("scroll", onScroll); return; } isLoading = true; const currentOffset = offset[loadCount]; window.loadMoreItems().then(() => { let article = document.querySelector('#widget_1690 > div:nth-last-of-type(2) article'); intersectionObserver.observe(article) loadCount++; }).catch(error => { console.error("Error loading more items:", error); }).finally(() => { isLoading = false; }); } } window.addEventListener("scroll", onScroll); });

Sign up by email to receive news.