Emergency services rushed to Arundel Street at 5.30pm on Friday evening following the incident.
A police cordon was put up around parts of the city centre and remained in place until Saturday morning.
An air ambulance landed near the scene and paramedics also attended.
The victim, a 19-year-old man, was taken to hospital but his injuries are not considered life-threatening.
Hampshire Constabulary have now charged an 18-year-old over the stabbing.
Fabian Silva, 18, of Sedgley Close, Portsmouth, has been charged with grievous bodily harm and possession of a bladed article.
SEE ALSO: This is why police were in Fratton
He was remanded in custody to appear at Portsmouth Magistrates' Court this morning (May 4).
Police had previously said that two men, both from Portsmouth, had been arrested on suspicion on assisting an offender.
They have been released from custody but remain under investigation.