91³Ô¹ÏÍø

Watch CBS News

Good Samaritan describes chaos in stopping gunman in deadly Pawtucket, Rhode Island shooting: "I grabbed the gun"

Three good Samaritans helped stop the Pawtucket, Rhode Island hockey game shooter Monday after he killed two people and critically wounded three others.

One of them is now telling his story.

Michael Black was in the stands with his wife watching a friend's son play in the game at the Dennis M. Lynch Arena.

He described what happened to CBS station as the shots rang out in front of him and spectators ducked for cover. Black told his wife to run.

"All of a sudden there's a parting of the people and I saw the shooter with the gun, pointing down. I believe it was with an elderly lady. I think it was the mother-in-law." Black said.

He and the others went to tackle the shooter, identified as 56-year-old Robert Dorgan, and wrestle the gun from Dorgan's hand. Police said Dorgan killed his son and his ex-wife and critically wounded his wife's parents and a family friend.

"As I saw the angle, I took a step up on the seat and I dove with the focus of going after the gun. And what happened was my hand, which you saw I've got nine stitches, got jammed in the gun," Black said.

"So as he was shooting, one of the shells came out and hit me in the mouth and then I grabbed the gun and my hand was inserted in the slide. So, I had my left hand inserted in the slide, I had my right hand pushing down on him with my body, kind of on top of him and he was trying to pull the trigger, but my hand was in there so nothing was working and I was able to get his hand off of the gun," Black told WPRI.

"I then took the gun, and he was a strong person. He kind of lifted me and pushed and I rolled out of it and then he stood up and his back was facing me, when he stood up and there was some other people that jumped in. One grabbed him and put him in a choke hold and other things, and then he fell back down again."

Black said once he got the gun away from the shooter others tried to tackle him, but that's when the gunman pulled out a second gun and took his own life.

Black praised everyone that helped.

"It took a bunch of us. It wasn't just one," he said.

Pawtucket Police said there's no official word yet on a motive for the shooting, but they called it a .

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