ADVERTISEMENT

'MORTAL KOMBAT II': The ultimate expression of the franchise

Published May 6, 2026 11:39 am  |  Updated May 6, 2026 05:27 pm
Karl Urban as Johnny Cage
Karl Urban as Johnny Cage
One could easily make a compelling case that "Mortal Kombat" was too much ahead of its time.
When the first game hit the arcades in the early 90’s it drew a lot of attention for its over the top violence and gore, reveling in its blood soaked fatalities.
It was an instant smash hit with the kids, but not so much with the parents, resulting in the game and its creators undergoing a US congressional hearing and partially resulting in the formation of the ESRB, the Electronics Software Ratings Board.
Fast forward to 2026, where the blood spatters and dismemberment seem downright tame compared to today’s video games like the "Resident Evil" or "Silent Hill" series. In an entertainment landscape like the one we have now, not only is "Mortal Kombat" surviving as a franchise, it is thriving.
"Mortal Kombat II" (or MK II for short) picks up from when the first movie leaves off. Earthrealm is preparing to defend itself in a cosmic tournament against the forces of Outworld, and the elder gods have chosen Earth’s newest champion, a has-been martial arts star, Johnny Cage (Karl Urban). Along with the rest of the champions from the first film like Sonya Blade, Jax and Liu Kang, Johnny has to learn to step up and save the world, for real this time. There are no stunt men to take the fall for him when going up against the champions of Outworld.
Adeline Rudolph as Kitana
Adeline Rudolph as Kitana
There’s really not much else to say, plot-wise. Just like the game everything is pretty straightforward. Ten tournaments decide the fate of the world, and the good guys are down by nine. It’s a winner-takes-all deal, and the good guys had better win.
And a paper-thin plot and barely-fleshed out characters are fine, perfectly fine. You don’t watch "Mortal Kombat" and expect anything resembling "The Godfather."  No, you come expecting – Nay – Craving blood. And that’s what this film has got, by the glass, by the bucket, by the barrel, you name it. If it can bleed, you bet it will.
The first movie back in 2021 was a mixed bag. The fights were great, there was some gore, but there was no tournament yet, and the introduction of a character not from the games didn’t sit well with some people.
This movie though, lets out all the stops. The tournament is on, and the tension is mounting. The fight choreography is top notch, with fights that are hard-hitting and brutal. None of that grounded, Jason Bourne stuff here. These match-ups are drawn out, explosive and theatrical. The gore is extreme, more than doubling the amount of the last film, and the deaths even more creative.
Through all of this though, the movie doesn’t take itself too seriously. The camp is dialed in as well, particularly with Johnny Cage’s excerpts from his glory days as an actor. There is a boatload of potshots and references to pop culture and other movies, and that just adds to the levity that necessarily contrasts with all the bodily fluids flying around.
One can’t help but realize that this movie, in a way, is the ultimate expression of "Mortal Kombat."  The campiness, the gratuitous gore and violence, "MK II" is a guilty pleasure, a wicked indulgence that is just oh, so satisfying.
Be sure to catch it in theaters!

Related Tags

Mortal Kombat II Karl Urban Johnny Cage Adeline Rudolph Kitana
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.