Hi Nick,
Yes, you will need to create the contact in Eloqua in order to push them through a campaign. One way to accomplish what you are trying to do would be to create the contact and add them to a shared list in Eloqua. The campaign is usually fed by a Segment, in which a shared list can be included. So, when someone submits your form, you create a contact record for them (or update an existing record) via the API, add the contact to a shared list, and then when the Segment (which includes that shared list) refreshes, the contact will flow through the campaign.
Hope this helps.