James was taken into custody Wednesday after police received a Crime Stoppers tip directing them to the East Village neighborhood of New York City, authorities said.
Police sources said they believe James called the tip line himself, saying he was at a McDonald's on the Lower East Side of Manhattan. "This is Frank. You guys are looking for me. ... My phone is about to die," the sources say the caller said.
New York City Eric Adams, who is in isolation following a positive Covid-19 test, told reporters in a video feed, "My fellow New Yorkers, we got him."
The tip that led to James' arrest originally took police to the McDonald's at First Avenue and East Sixth Street before officers found him a short time later, two blocks away at St. Mark's Place, ending an intense 30-hour manhunt, officials said.
As he was led out of the 9th Precinct station house on his way to jail, a handcuffed James declined to answer any questions shouted at him by reporters and photographers.
"We used every resource at our disposal to gather and process significant evidence that directly links Mr. James to the shooting," Police Commissioner Keechant Sewell told reporters.
"We were able to shrink his world quickly. There was nowhere left for him to run."
Police declined to say at the news conference who phoned in the key tip. When Sewell was asked directly whether James called in on himself, she said authorities were still reviewing the matter.
Three sources familiar with the arrest said James appeared to have made the call.
He is accused of violating a federal law that makes it a crime to commit "an act, including the use of a dangerous weapon, with the intent to cause death or serious bodily injury to any person who is on property" of a mass transit system that was carrying passengers.
The statute carries a 20-year maximum sentence.
"Yesterday was a dark day for all of us," U.S. Attorney Breon Peace said. "But the bright spots of the incredible heroism of our fellow New Yorkers, helping each other in a time of crisis, the quick response by our first responders and the hard work by all of our law enforcement partners that has been ongoing is truly a bright spot here."
More from NBC News:
Earlier Wednesday, authorities called James a suspect rather than a person of interest.
Security video obtained by NBC New York appeared to show James swiping a subway card, trying to enter a station before Tuesday's attack, giving authorities a clearer look at him.
It still wasn't clear Wednesday why that subway train or that station were targeted, if they were at all.
Police even left open the possibility that the attack might have been a spur-of-the-moment act.
"He popped the smoke grenade, and we have one witness who says 'What did you do?'" New York police Chief of Detectives James Essig said. "He goes 'oops,' and then he pops the [other smoke canister], brandishes the firearm and fires 33 times."
Piecing together a potential motive had been a secondary concern for investigators looking for James.
"First and foremost, we wanted to get him off the street," Essig said.
James has a lengthy arrest record in New York City and across the Hudson River in New Jersey, Essig said.
From 1992 to 1998, he was arrested nine times in the five boroughs on accusations that include possession of burglary tools, a criminal sex act and theft of service. His New Jersey arrests were in 1991, 1992 and 2007, when he was accused of trespassing, larceny and disorderly conduct.
Authorities shifted their language Wednesday, from "person of interest" to "suspect," after another key development, with investigators linking the gun alleged to have been used in Tuesday morning's rush-hour attack to James and an Ohio pawn shop, law enforcement sources said.
Cellphones buzzed shortly after James was named as a suspect, urging New Yorkers to call authorities if they saw him.
A 9 mm Glock handgun left at the scene has been traced by Bureau of Alcohol, Tobacco, Firearms and Explosives investigators to James and a pawn shop in Columbus, law enforcement said. He purchased it there in 2011, sources said.
A $50,000 reward had been offered for tips leading to the arrest and conviction of James, who police said had addresses in Wisconsin and Philadelphia.
He rented a U-Haul van, the keys of which were found at the scene of the shooting in Brooklyn's Sunset Park neighborhood, authorities said.
That van was discovered in the Gravesend neighborhood of Brooklyn, about 5 miles from the attack.
Investigators have obtained security video, taken near that van, appearing to show the gunman walking into a subway station, law enforcement sources said. Video recorded the grainy figure carrying a bag, similar to the one recovered at the shooting scene, into the Kings Highway station, which serves the N line.
Tuesday's shooting was carried out as a Manhattan-bound N train pulled into the 36th Street station.
The bag left behind at the station carried a variety of fireworks and other pyrotechnic equipment that an Ohio-based fireworks seller believes came from him, he told NBC News.
Based on widely circulated pictures of the bag, Phantom Fireworks CEO Bruce Zoldan said that images show four distinct, proprietary items that link to his business — and that they were purchased last June in Wisconsin by a 62-year-old man named Frank James.
"We found people [in sales records] that bought two of those items, individuals that bought three of those items, individuals that bought one of those items," Zoldan said. "Only one person bought four of those items, exact four items."
He ordered additional police staffing on subways Tuesday and urged his fellow New Yorkers to keep using public transit in the wake of the attack.
Adams retweeted pictures of City Hall staffers who rode rails Wednesday, adding: "Proud of this team."
Before the attack, James appeared to post several rambling videos on YouTube in which he voiced bigoted and controversial views, as well as scathing criticism of Adams, Adams' public safety policies and homeless outreach programs on trains.
In a video posted Monday, he said he had experienced the desire to kill people but didn't want to go to jail.