St Joseph's Catholic Primary School in Worcester is reported to be charging £1 per ticket for the three performances by pupils in Key Stage 1, reception and nursery.
Headteacher Louise Bury has written a letter to parents saying the charge - which is being levied for the first time - will be spent on resources for the school.
She said: "I know that for some of you, paying to see your child perform doesn't feel right.
"With ever-tightening budgets and growing numbers, we saw this as an opportunity to be able to invest in some valuable reading and learning resources for Key Stage 1 and Early Years."
She added that health and safety reasons were also behind introducing a ticketing system for the play at the school in Chedworth Drive, Warndon, as the hall could not fit all the parents in the hall at the same time.