Police said the stabbing happened in Flockton St, St Albans, about 1am.
The alleged attacker, also 20, appeared in the Christchurch District Court yesterday on charges of wounding with intent to cause grievous bodily harm.
A police officer who was one of the first to arrive at the scene had emergency medical experience and decided to leave the knife undisturbed before the man was taken to hospital for surgery.