91³Ô¹ÏÍø

Watch CBS News

NYPD hero cop who chased down Gracie Mansion bomb suspect had just one thought: "Catch the bad guy"

When homemade bombs were lit in the middle of a crowded protest in New York City over the weekend, NYPD Chief Aaron Edwards said he had just one thought in mind as he leaped over a barricade: "Catch the bad guy."

"You have that moment when you realize that, you know, this situation is way more serious than you might have imagined at the time," Edwards said in an exclusive network television sit-down interview with CBS News.

Edwards and fellow NYPD officer Sgt. Luis Navarro were widely commended for their quick response to the March 7 incident, in which the devices were lit and thrown during clashing protests outside Gracie Mansion, the residence of Mayor Zohran Mamdani, by two men authorities say were inspired by ISIS.  

Emir Balat, 18, and Ibrahim Kayumi, 19, both of Pennsylvania, face a host of terrorism charges in what NYPD Commissioner Jessica Tisch called "a planned attack motivated by extremist ideology and inspired by a violent foreign terrorist organization."

As chaos erupted, the two officers sprang into action, rushing toward the suspect. 

"In that moment, I didn't think of anything. It was to me trying to save as many lives as possible," Navarro said.

Earlier Wednesday, Navarro told a gaggle of local New York reporters that it was the most extreme situation he's found himself in his 11 years with the NYPD.

"We've done counterterrorism training, active shooter training. Everything I've learned in my whole career culminated to that one moment," Navarro said.

Photos of the brave officers have been widely circulated online, including one that shows Edwards' heroic jump over the metal barrier. The post has racked up nearly 20 million views. Other social media users have since meme-ified the image, adding a cape, or using his silhouette in a mock-up of the "Bat-signal."

"I am impressed that I cleared that barrier," Edwards joked, adding that it was "pure adrenaline" that propelled him over. 

The 46-year-old assistant chief said he was inspired to become a police officer after watching first responders rushing in to save people during the September 11 attacks. He has been with the NYPD for nearly 23 years and was promoted to Manhattan North borough chief in December. 

"I was just laser focused trying to catch this guy and there was nothing gonna stand in my way," Edwards said.

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