Andrew Lozano, 24, was arrested in the 1500-block of north Lewis Avenue and police said he was in possession of the knife believed to have been used in the attack.
Lozano was charged with aggravated battery and unlawful use of a weapon.
Waukegan police said around 7:45 p.m. on Wednesday they were called to the Super Fresh Market in the 1700-block of North Lewis Avenue for a report of multiple people stabbed.
Police said one teen was stabbed and the other was injured in an altercation with the suspect.
The grocery store's manager said two men started fighting in the store, one of whom appeared drunk. The man who appeared drunk produced a knife and stabbed the man, she said. Others tried to intervene, she said.
Lozano was also charged with aggravated battery in a February 10 incident at the Motel 6 in the 00-100-block of north Green Bay Road, according to police. Police said Lozano entered the motel and got upset at the clerk and started hitting and kicking him. Police said the clerk was hospitalized with internal injuries. The clerk is expected to recover.
Lozano is being held on a $300,000 bond. He is due in court on March 27.