He announced the decision in an email to supporters Monday, saying he wants to remain focused on his work in the House. The decision leaves U.S. Rep. Beto O'Rourke, D-El Paso, as Cruz's main competition.
"I’ve kept my pledge to fight for hard-working Texans, and I’ll keep doing that," Castro said in the email. "However, with the threats posed by Russia and North Korea, coupled with the reckless behavior of this Administration and their failure to invest in economic opportunity for the American people, at this time I believe I can best continue that work by focusing on my duties in the House Foreign Affairs and Intelligence Committees."
Castro, seen as a rising star among Texas Democrats, had been mulling a Senate run for several months. In recent weeks, he promised to announce his decision by the end of April. As recently as last week, he was non-committal to House colleagues.
If he had run, Castro would have had to give up a safe seat in Congress, where he has the two high-profile committee assignments. O'Rourke, by contrast, had term-limited himself in the House.
Beating Cruz remains an uphill battle for Texas Democrats, who haven't won a Senate seat since 1988. The incumbent has over $5 million saved up for the 2018 race.
O'Rourke announced his campaign a month ago and has since crisscrossed the state, visiting nearly two dozen cities. He did not immediately get Castro's endorsement Monday.
Abby Livingston contributed to this report.