How can I pass CiviCRM first name and last name fields to Drupal API user_save
The user_save() function can't take CiviCRM data.  CiviCRM injects a profile into the user creation page when you create a user through the UI.

To handle your scenario, you'll want to:


Call user_save().  It will return a user object, including the UID.
Call the CiviCRM UFMatch.get API to get the corresponding Civi contact ID.
Call Contact.create on the contact ID to insert the first/last name.