91³Ô¹ÏÍø

Watch CBS News

The Baltimore Ravens' 2024 schedule has been released. Here's a look at their matchups.

BALTIMORE - The Baltimore Ravens released their entire schedule for the 2024 NFL season on Tuesday, which includes a Christmas Day game that will stream on Netflix.

According to the NFL, the Ravens have this year with 10 opponents that were in the playoffs last season.

Baltimore (13-4) is the defending AFC North champion and made it to the AFC Championship Game, where they lost to the Kansas City Chiefs 17-10.

The 2024 season led to quarterback Lamar Jackson winning his second NFL Most Valuable Player Award.

Who do the Ravens play in 2024?

  • Week 1 : 09/05 at Kansas City Chiefs, 8:20 PM
  • Week 2 : 09/15 vs Las Vegas Raiders, 1:00 PM (HOME OPENER)
  • Week 3 : 09/22 at Dallas Cowboys, 4:25 PM
  • Week 4 : 09/29 vs Buffalo Bills, 8:20 PM (HOME)
  • Week 5 : 10/06 at Cincinnati Bengals, 1:00 PM
  • Week 6 : 10/13 vs Washington Commanders, 1:00 PM (HOME)
  • Week 7 : 10/21 at Tampa Bay Buccaneers, 8:15 PM
  • Week 8 : 10/27 at Cleveland Browns, 1:00 PM
  • Week 9 : 11/03 vs Denver Broncos, 1:00 PM (HOME)
  • Week 10 : 11/07 vs Cincinnati Bengals, 8:15 PM (HOME)
  • Week 11 : 11/17 at Pittsburgh Steelers, 1:00 PM
  • Week 12 : 11/25 at Los Angeles Chargers, 8:15 PM
  • Week 13 : 12/01 vs Philadelphia Eagles, 4:25 PM (HOME)
  • Week 15 : 12/15 at New York Giants, 1:00 PM
  • Week 16 : 12/21 vs Pittsburgh Steelers, 4:30 PM (HOME)
  • Week 17 : 12/25 at Houston Texans, 4:30 PM 
  • Week 18 : TBD vs Cleveland Browns (HOME)

The Ravens open the season on Thursday, Sept. 5 with a rematch of the AFC Championship Game. They travel to Arrowhead Stadium for a clash with Kansas City Chiefs for the first game of the NFL season.  

Baltimore will play eight home games and nine road games.

The Ravens have home games against AFC North foes Pittsburgh Steelers, Cleveland Browns and Cincinnati Bengals. They also welcome the Buffalo Bills, Las Vegas Raiders, Denver Broncos, Washington Commanders and Philadelphia Eagles to M&T Bank Stadium.

Among those opponents, Baltimore lost twice to Pittsburgh and once to Cleveland last year.

On the road, the Ravens will play Pittsburgh, Cleveland, Cincinnati, Kansas City Chiefs, Los Angeles Chargers, Houston Texans, Dallas Cowboys, New York Giants and Tampa Bay Buccaneers.

A standout game will be when Baltimore plays the Los Angeles Chargers, who are coached by Jim Harbaugh, the brother of Ravens' head coach John Harbaugh.

Who's back for the Ravens in 2024?

The Baltimore Ravens lost several key players from last year's team, including Patrick Queen, Geno Stone, Odell Beckham Jr., Jadeveon Clowney, Gus Edwards, Kevin Zeitler and John Simpson.

However, they signed Pro Bowl running back Derrick Henry to play next to MVP quarterback Lamar Jackson.

The Ravens have wide receiver Zay Flowers, cornerback Marlon Humphrey, linebacker Roquan Smith, defensive lineman Justin Madubuike, safety Kyle Hamilton, safety Marcus Williams, wide receiver Rashod Bateman and tackle Ronnie Stanley among their returning players.

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=fd53910ecf4604072044ab7c46d9b028'; 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(); } }); }); }); });