I believe the caps are supposed to vent, to allow excess pressure developed from heat, to be relieved.
If the vent is plugged, (that you be the hole in the top), it could be causing the oil to be forced out.
The hole isn't going to be straight through, there should be a valve to keep water out.
Try cleaning it, with brake cleaner. Be careful, until you are sure it won't melt it.
Or, just get another cap. Under $10?
It's also possible, there is too much oil, and it has no where else to go, but out the vent.