91³Ô¹ÏÍø

Watch CBS News

Check the Boston Marathon 2026 results for winners, times, prize money and more

The first winners crossed the finish line at the 2026 Boston Marathon on Marathon Monday. The men's and women's wheelchair races were the first to break the tape on the course, followed by professional runners a short time later. 

ap26110567584692-1.jpg
John Korir, of Kenya, breaks the tape to win the Boston Marathon, Monday, April 20, 2026, in Boston.  AP Photo/Charles Krupa

2026 Boston Marathon winners

The men's professional winner was John Korir, taking home a second straight Boston Marathon title with a course-record time.

The Kenyan won with a time of 2:01:52, shaving several minutes off of his 2025 mark of 2:04:45. The time smashed the previous Boston Marathon course record of 2:03:02, set by Geoffrey Mutai in 2011.

When Korir won in 2025, he accomplished a feat previously achieved by his brother, Wesley Korir, in 2012.

Sharon Lokedi of Kenya also defended her Boston Marathon title in the women's professional division.

She won comfortably with a time of 2:18:51 to earn a second straight title.

Lokedi won Boston in 2025 thanks to her time of 2:17:22.

ap26110585511946-1.jpg
Sharon Lokedi of Kenya, celebrates after winning the women's division of the Boston Marathon, Monday, April 20, 2026, in Boston.  AP Photo/Charles Krupa

Boston Marathon wheelchair winners

Switzerland's Marcel Hug, known as "The Silver Bullet" for his trademark silver helmet, won for the men's wheelchair division for a ninth time.

Hug's victory was a dominant one. He finished with an unofficial time of 1:16:05. 

A short time later, Eden Rainbow-Cooper won the women's wheelchair title with an unofficial time of 1:30:51. She broke the tape several minutes ahead of the competition. 

It was Rainbow-Cooper's second Boston Marathon title. In 2024, she became the first woman from Great Britain to win the division.

ap26110548480776-1.jpg
Men's wheelchair division winner Marcel Hug, of Switzerland, left, and women's wheelchair division winner Eden Rainbow-Cooper, of Portsmouth, England, hold the trophy after competing in the Boston Marathon, Monday, April 20, 2026, in Boston. AP Photo/Charles Krupa

Boston Marathon prize money

There is a prize pool of $1,284,500, which is an increase of $70,000 from 2025.

The pool is spread among men and women in the open, masters and wheelchair divisions. Included in the prize pool is a $50,000 course record bonus for open and wheelchair athletes.

For winning the men's race, Korir won $150,000, then he added the $50,000 for his course record for a total of $200,000.

Who won the Boston Marathon in 2025?

Korir won the 2025 Boston Marathon, pulling away from the lead pack around the 20-mile mark and winning easily with a time of 2:04:45.

Sharon Lokedi used a late push and won the women's race with a time of 2:17:22. She fought off fellow Kenyan Hellen Obiri, shattering the course record in the process.

It was a familiar face taking home the men's wheelchair division. Hug, Monday's first winner of the day, won for the eighth time in 2025.

Susannah Scaroni of Washington state took home the title in the women's wheelchair in 2025. The victory came one year after she was forced to withdraw due to injury. 

View CBS News In
CBS News App Open
Chrome Safari Continue
const link = doc.createElement('link'); link.rel = 'stylesheet'; link.href = '/fly/fly/bundles/cbsnewscontent/css/cmp-banner.min.css?v=50747257b890e014813016b79ece0fb2'; doc.head.appendChild(link); doc.body.innerHTML = CONSENT_MESSAGE; } else { el.insertAdjacentHTML('afterend', CONSENT_MESSAGE); } }); } function hidePrivacyMessage() { // Remove from the main document document.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); // Remove from inside any iframes document.querySelectorAll('iframe').forEach(iframe => { const doc = iframe.contentDocument || iframe.contentWindow.document; doc.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); }); } function activateGatedScripts() { // Handle both new format (cmp-gated-script) and old OneTrust/Ketch format (optanon-category-4) const gatedScripts = Array.from(document.querySelectorAll('script.cmp-gated-script, script.optanon-category-4')); // Activate scripts sequentially with a small delay to avoid timing issues let delay = 0; gatedScripts.forEach(function(placeholder, index) { setTimeout(function() { // Skip if already processed if (placeholder.hasAttribute('data-cmp-processed')) { return; } placeholder.setAttribute('data-cmp-processed', 'true'); const newScript = document.createElement('script'); newScript.type = 'text/javascript'; // Try new format first (data-cmp-src), then fall back to old format (data-src) const src = placeholder.getAttribute('data-cmp-src') || placeholder.getAttribute('data-src'); if (src) { newScript.src = src; } else if (placeholder.textContent) { // Inline script - just copy the content newScript.textContent = placeholder.textContent; } // Handle new format attributes (data-cmp-attrs) - for both inline and external scripts const attrs = placeholder.getAttribute('data-cmp-attrs'); if (attrs) { const tempDiv = document.createElement('div'); tempDiv.innerHTML = '
<\/div>'; const tempAttrs = tempDiv.firstChild.attributes; for (let i = 0; i < tempAttrs.length; i++) { // For external scripts, allow defer/async. For inline scripts, skip them (not valid) if (src || (tempAttrs[i].name !== 'async' && tempAttrs[i].name !== 'defer')) { newScript.setAttribute(tempAttrs[i].name, tempAttrs[i].value); } } } // Copy other attributes from old OneTrust format for (let i = 0; i < placeholder.attributes.length; i++) { const attr = placeholder.attributes[i]; // Skip attributes we've already handled or don't want to copy if (!['class', 'data-src', 'data-type', 'data-cmp-src', 'data-cmp-attrs', 'data-cmp-processed', 'type', 'async', 'defer', 'src'].includes(attr.name)) { newScript.setAttribute(attr.name, attr.value); } } placeholder.parentNode.replaceChild(newScript, placeholder); // If external script, manually trigger window.onload handlers after it loads // This handles widgets that use window.onload for initialization if (src) { newScript.addEventListener('load', function() { // If page already loaded and script set a new onload handler, trigger it if (document.readyState === 'complete' && window.onload) { const originalOnload = window.onload; window.onload = null; // Clear temporarily to prevent loops originalOnload(); // Execute the handler } }); } }, delay); delay += 500; // 500ms delay between each script to allow full loading }); } cbsoptanon.onScriptsReady(function(cmp) { cmp.ot.targetingAllowed(function(allowed) { if (!allowed) { showPrivacyMessage(); } else { activateGatedScripts(); } }); cmp.ot.awaitInitialConsent(function(consent_model) { cmp.ot.addOnConsentChangedHandler(function() { cmp.ot.targetingAllowed(function(allowed) { if (allowed) { hidePrivacyMessage(); activateGatedScripts(); } else { showPrivacyMessage(); } }); }); }); });