Former Rep. Beto O'Rourkein El Paso, Texas, on Monday night, in direct competition with own event across the street at an arena. He told the crowd it's time to "show the country that there is nothing to be afraid of when it comes to the U.S.-Mexico border." Cheers from Mr. Trump's fans could be heard at the counter-protest.
"The judgment of history is looking back at this moment," the former congressman said. He has been mulling a 2020 presidential run, and many in the crowd yelled for him to announce his candidacy. But O'Rourke said only, "This is where we make our stand."
Police did not give official estimates on O'Rourke's crowd size, but it appeared to exceed 5,000, in contrast to Trump's estimate of a few hundred.
"Walls do not save lives, walls end lives," O'Rourke said, citing the danger to asylum seekers who are rejected by the U.S.
O'Rourke, who represented the border city in Congress until January, led thousands in a "March for Truth," just before Mr. Trump took the stage to rally support for his long-promised border wall.
O'Rourke told the crowd, "You make El Paso proud and you make the country proud."
Protesters chanted "No wall!" and "Viva Beto!" as they proceeded.
The march's organizers said Mr. Trump's "fixation on a border wall and his distortions of life in El Paso and along the border are unacceptable. Our communities will always stand to include immigrants, oppose racism, and defend the truth."
Over the weekend, O'Rourke posted a photo to Instagram of a homemade sign, as well as a video with his daughter Molly in which he said marchers would "meet lies and hate with the truth and vision of the future from the U.S-Mexico border."
The march began at 7 p.m. ET and O'Rourke took the stage after 9 p.m., around the same time Mr. Trump's "" rally began.
The Associated Press contributed to this report.