Index: src/wp-admin/admin-ajax.php
===================================================================
--- src/wp-admin/admin-ajax.php	(revision 31826)
+++ src/wp-admin/admin-ajax.php	(working copy)
@@ -61,8 +61,8 @@
 	'query-attachments', 'save-attachment', 'save-attachment-compat', 'send-link-to-editor',
 	'send-attachment-to-editor', 'save-attachment-order', 'heartbeat', 'get-revision-diffs',
 	'save-user-color-scheme', 'update-widget', 'query-themes', 'parse-embed', 'set-attachment-thumbnail',
-	'parse-media-shortcode', 'destroy-sessions', 'install-plugin', 'update-plugin', 'press-this-save-post',
-	'press-this-add-category',
+	'parse-media-shortcode', 'destroy-sessions', 'install-plugin', 'activate-plugin', 'update-plugin',
+	'press-this-save-post', 'press-this-add-category',
 );
 
 // Register core Ajax calls.
Index: src/wp-admin/includes/ajax-actions.php
===================================================================
--- src/wp-admin/includes/ajax-actions.php	(revision 31826)
+++ src/wp-admin/includes/ajax-actions.php	(working copy)
@@ -2919,16 +2919,76 @@
 		wp_send_json_error( $status );
 	}
 
+	if ( is_multisite() ) {
+		wp_send_json_success( $status );
+	}
+
 	$plugin_status = install_plugin_install_status( $api );
+	$plugin = $plugin_status['file'];
 
-	if ( ! is_multisite() ) {
-		activate_plugin( $plugin_status['file'] );
+	$url  = admin_url( 'admin-ajax.php' );
+	$args = array(
+		/** This filter is documented in wp-includes/class-http.php */
+		'sslverify' => apply_filters( 'https_local_ssl_verify', false ),
+		'body'      => array(
+			'action'  => 'activate-plugin',
+			'nonce'   => wp_create_nonce( 'ajax-activate-plugin_' . $plugin ),
+			'plugin'  => $plugin,
+		),
+		'cookies'   => array(
+			LOGGED_IN_COOKIE => $_COOKIE[ LOGGED_IN_COOKIE ],
+		),
+	);
+
+	$response = wp_remote_post( $url, $args );
+
+	if ( is_wp_error( $response ) || 200 != wp_remote_retrieve_response_code( $response ) ) {
+		$status['error'] = __( 'Could not activate plugin.' );
+		wp_send_json_error( $status );
 	}
 
+	$body = wp_remote_retrieve_body( $response );
+	$activate_result = json_decode( $body );
+
+	if ( null === $activate_result ) {
+		$status['error'] = __( 'Could not activate plugin.' );
+		wp_send_json_error( $status );
+	}
+
+	if ( false === $activate_result->success ) {
+		$status['error'] = $activate_result->data;
+		wp_send_json_error( $status );
+	}
+
 	wp_send_json_success( $status );
 }
 
 /**
+ * AJAX handler for activating a plugin.
+ *
+ * @since 4.2.0
+ */
+function wp_ajax_activate_plugin() {
+	$plugin = $_POST['plugin'];
+
+	$verify = wp_verify_nonce( $_POST['nonce'], 'ajax-activate-plugin_' . $plugin );
+
+	if ( ! $verify ) {
+		wp_send_json_error( __( 'Could not activate plugin.' ) );
+	}
+
+	include_once( ABSPATH . 'wp-admin/includes/plugin-install.php' );
+
+	$result = activate_plugin( $plugin );
+
+	if ( is_wp_error( $result ) ) {
+		wp_send_json_error( $result->get_error_message() );
+	}
+
+	wp_send_json_success( true );
+}
+
+/**
  * AJAX handler for updating a plugin.
  *
  * @since 4.2.0
