How to Use Custom Meta Field Instead of CPT Title in Post URL

You have to use a wp_update_post function and update the required fields based on available fields in WP_Post class.

add_action( 'save_post', 'wpse75679_save_post' );
function wpse75679_save_post( $post_id )
{
    if( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return;

    // verify post is not a revision
    if ( ! wp_is_post_revision( $post_id ) ) {

    // unhook this function to prevent infinite loop
    remove_action( 'save_post', 'wpse75679_save_post' );

    // update the post slug and title
    wp_update_post( array(
        'ID' => $post_id,
        'post_title' => 'new-title'
        'post_name' => 'new-slug'
    ));

    // re-hook this function
    add_action( 'save_post', 'wpse75679_save_post' );
}