ADVERTISEMENT

'Punisher: One Last Kill' – A preview of things to come

Published May 19, 2026 11:10 am
Frank Castle / The Punisher (Jon Bernthal) in Marvel’s THE PUNISHER: ONE LAST KILL, exclusively on Disney . Photo courtesy of Marvel. © 2026 Marvel. All Rights Reserved.
Frank Castle / The Punisher (Jon Bernthal) in Marvel’s THE PUNISHER: ONE LAST KILL, exclusively on Disney . Photo courtesy of Marvel. © 2026 Marvel. All Rights Reserved.
Frank Castle is back and as usual he's kicking butt and taking names. Well, not so much taking names as most people who cross his path never get to live long enough to tell him who they are. Not that he really cares, because that’s just the kind of guy he is.
John Bernthal reprises his role as The Punisher, one of Marvel’s most violent vigilantes via Disney Plus. Last seen helping out in "Daredevil Born Again," we now find Frank lost and confused, not at all sure what to do with himself. His wife and kids are avenged, but he still hasn’t found peace. He’s seen too much and done too much that it seems like he can’t ever get any of it off his chest.
Based on the “Welcome Back, Frank” comic storyline by Garth Ennis, Steve Dillion and Jimmy Palmiotti, Frank finds himself in the line of fire from Ma Gnucci, matriarch of the Gnucci crime family and one loose end that has come back to haunt the Punisher. It gets very bloody very quickly, and the body count soars. In the end, he runs into a moral dilemma, and the decision he makes determines the kind of person he wants to be.
Frank Castle / The Punisher (Jon Bernthal) in Marvel’s THE PUNISHER: ONE LAST KILL, exclusively on Disney . Photo courtesy of Marvel. © 2026 Marvel. All Rights Reserved.
Frank Castle / The Punisher (Jon Bernthal) in Marvel’s THE PUNISHER: ONE LAST KILL, exclusively on Disney . Photo courtesy of Marvel. © 2026 Marvel. All Rights Reserved.
It’s not a plot that’s particularly original, as we’ve seen Frank go through this before where he just wants to be left alone and is suddenly drawn back into a violent life. But it’s something that one could argue is necessary for his inclusion in the wider Marvel Cinematic Universe.
In fact, the whole 45 or so minutes of "One Last Kill" feels more like a preview of things to come rather than a major event itself. I can’t help but see it as a starter or an entree, whetting your appetite for the main meal. Yes, we saw Frank come back in "Daredevil," and now he comes into his own in "One Last Kill." We already know he’ll be in the next "Spider-Man" film. After that, who knows? Maybe a series where we see the Punisher just being the Punisher.
Bernthal and "One Last Kill" director Reinaldo Marcus Green have already said they’d like to bring good ol’ Frank to the big screen. Will the gods of the MCU make it happen? Who’s to say? But what is for certain, is that The Punisher is back, kicking butt, and not bothering to take names.

Related Tags

The Punisher John Bernthal Frank Castle
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.