El Paso, Texas CNN  — 

Beto O’Rourke challenged President Donald Trump in his most direct and public way yet Monday, lambasting Trump’s calls for a border wall on a stage a little more than a football field away from Trump’s rally here.

“With the eyes of the country upon us, all of us together are going to make our stand, here in one of the safest cities in the United States of America – safe not because of walls, but in spite of walls,” the former Texas congressman told a sprawling crowd of thousands that had filled an outdoor baseball field after marching a mile. “We treat each other with dignity and respect. That is the way we make our community and our country safe.”

The subtext of the day was O’Rourke’s potential run for the Democratic 2020 presidential nomination and the opportunity to take on Trump in a general election. As he weighs entering an already crowded field, Monday was a test of O’Rourke’s ability to confront the President with a national audience – including Democratic primary voters who polls have shown are particularly concerned about electability in choosing their nominee.

O’Rourke’s event was so close to Trump’s that “God Bless America” could be heard blaring over the nearby loudspeakers. Trump took the stage just as O’Rourke wrapped up, and his speech was audible as O’Rourke’s supporters left the ball field.

The former Texas congressman was on clearly on Trump’s mind. At his rally, the President called O’Rourke “a young man who has got very little going for himself except he’s got a great first name.”

Trump mocked O’Rourke’s recent Senate loss in Texas – in which he raised a record-shattering $80 million and lost by three percentage points – saying the former congressman had just “lost an election to Ted Cruz.”

“You’re supposed to win in order to run,” Trump said.

O’Rourke has said he’ll make his mind up about a presidential bid by the end of the month but wouldn’t discuss his plans Monday night. Instead, he sought to steer the focus to his border city’s opposition to Trump’s calls for a wall separating the United States and Mexico.

He referred to “the President” several times, but never used Trump’s name. He highlighted Trump’s 2015 comments about Mexicans being “rapists” and “criminals,” telling the crowd that immigrants commit crimes at lower-than-average rates.

Warning of one way Trump could seek to circumvent Congress to fund the construction of a border wall, O’Rourke told the crowd that “we stand against national security declarations that allow the President to subvert an equal branch of government.”

“Walls do not save lives. Walls end lives,” he said. He highlighted nonprofits and activist groups in El Paso that help immigrants immediately upon their arrival in the United States, and said El Paso is no more safe as a result of the border wall built there in 2008.

“We stand for America and we stand against walls,” he said. “We know there is no bargain in which we can sacrifice some of our humanity to gain a little more security.”

O’Rourke’s speech came after he led a one-mile march protesting Trump’s calls for a border wall. It began at Bowie High School and, as the sun set, moved past the venue where Trump supporters were lined up to get into the President’s speech – with a fence separating the United States and Mexico on marchers’ right side the entire way.

“I am so proud of what El Paso is doing right now. We have decided that no one will tell our story but us, and that story is powerful, it’s positive – it is the truth in face of these lies,” he said in a four-minute speech before the march began.

Dozens of chants urging O’Rourke to run for president broke out before and during the march.

“Beto, run for president, buddy,” one man leaned in to say as they walked.

“Thinkin’ about it, thank you,” O’Rourke responded.

O’Rourke’s wife Amy and his three children were with him Monday night. One of his two sons rode on his shoulders during part of the march.

Amid the chaotic scene, O’Rourke at one point leaned in to his sons.

“Let’s remember this moment,” he said. “It’s pretty wild.”

CNN’s Jeff Zeleny contributed to this report.