Index: src/wp-admin/css/list-tables.css
===================================================================
--- src/wp-admin/css/list-tables.css	(revision 29589)
+++ src/wp-admin/css/list-tables.css	(working copy)
@@ -1241,6 +1241,7 @@
 	-webkit-box-sizing: border-box;
 	-moz-box-sizing: border-box;
 	box-sizing: border-box;
+	cursor: pointer;
 }
 
 .plugin-card:nth-child(odd) {
Index: src/wp-admin/js/plugin-install.js
===================================================================
--- src/wp-admin/js/plugin-install.js	(revision 29589)
+++ src/wp-admin/js/plugin-install.js	(working copy)
@@ -38,9 +38,24 @@
 		tb_position();
 	});
 
-	$( '.plugin-card, .plugins .column-description' ).on( 'click', 'a.thickbox', function() {
-		tb_click.call(this);
+	$( '.plugin-card, .plugins .column-description' ).on( 'click', function( e ) {
+		// Don't trigger thickbox if the user is currently selecting text within it
+		var s1 = window.getSelection,
+			s2 = document.getSelection,
+			s3 = document.selection,
+			s  = ( s1 ? s1() : (s2) ? s2() : ( s3 ? s3() : null ) );
 
+		if ( s && s.type === 'Range' ) {
+			return false;
+		}
+
+		// Don't trigger thickbox if a link that doesn't have the proper class to do so (EGs: link to dev site & install button).
+		if ( $( e.target ).is( 'a' ) && ! $( e.target ).is( 'a.thickbox' ) ) {
+			return true;
+		}
+
+		tb_click.call( $('a.thickbox', this)[0] ); // use the URL of the first thickbox link in the card
+
 		$('#TB_title').css({'background-color':'#222','color':'#cfcfcf'});
 		$('#TB_ajaxWindowTitle').html( '<strong>' + plugininstallL10n.plugin_information + '</strong>&nbsp;' + $(this).data( 'title' ) );
 		$('#TB_iframeContent').attr( 'title', plugininstallL10n.plugin_information + ' ' + $(this).data( 'title' ) );
