91³Ô¹ÏÍø

Watch CBS News

Grief, outrage in community after Frisco track meet stabbing leaves student-athlete dead

A track and field event Wednesday among Frisco high schools took a deadly and tragic turn among students who were attending. 

Frisco police said an altercation between two 17-year-old male students led to a stabbing which left one dead and the other facing a murder charge. 

Students and parents within the Frisco Independent School District expressed grief and outrage on social media over the violent attack.

austin-metcalf.png
Austin Metcalf

Just two days before the stabbing, Austin Metcalf posted on X, "Faith that God got me and my work will pay off."

Wednesday morning, the 17-year-old Memorial High School student athlete's life and bright future ended inside Frisco ISD's stadium where a track and field event was scheduled. 

Frisco police said after an altercation, Karmelo Anthony stabbed Metcalf who was taken to a hospital where he died. 

Anthony was arrested and charged with first-degree murder. 

Authorities had a blue tarp over the scene of the stabbing shortly after everyone in the stadium was evacuated to school buses. 

"I'd probably call him a brother," said friend and football teammate, Gavin Stites, who said he has known Austin since they played together on the same soccer team as kids. "I've known him since I was five years old. If I need anything from him, he was there."

Stites, a senior on the team, was the quarterback and Metcalf was his linebacker. Stites said Metcalf was someone he could always trust to have his back. He said Metcalf was truly the heart of their football team and he even played alongside his twin brother, Hunter.

"He was kind of, the light that we all looked for," said Stites. "You know, even our warmup, he'd get the chat going and get us fired. He was the, he is actually that, he is the spirit."

Metcalf's father Jeff said in a post online that his son died in his twin brother's arms. 

"This tragedy has shaken me, family, and friends to the core," the post reads. "I trust God will bring us through the tough times ahead."

"I'm happy he's in heaven," said Stites. "That's what I'd tell him —and that Hunter and I will look after his mom for him."  

The principal of Metcalf's school, Brook Fesco sent a letter to the parents of his fellow students which read:

Tomorrow morning, we will acknowledge Austin's death during 2nd period and will offer support throughout the day. District and campus counselors will be available to support your child through the grieving process. 
As a parent, your guidance and support will be important in helping your child process grief. Talking about this together, face-to-face, will give you a chance to discuss how your family understands and copes with loss. 

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