diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d7_block_content_body_field.yml b/core/modules/migrate_drupal/config/install/migrate.migration.d7_block_content_body_field.yml
new file mode 100755
index 0000000..53f4e01
--- /dev/null
+++ b/core/modules/migrate_drupal/config/install/migrate.migration.d7_block_content_body_field.yml
@@ -0,0 +1,25 @@
+id: d7_block_content_body_field
+label: Drupal 7 block content body field configuration
+migration_tags:
+  - Drupal 7
+source:
+  # We do an empty source and a proper destination to have an idmap for
+  # migration_dependencies.
+  plugin: empty
+  constants:
+    entity_type: block_content
+    bundle: basic
+    name: body
+    label: Body
+    display_summary: false
+process:
+  entity_type: 'constants/entity_type'
+  bundle: 'constants/bundle'
+  field_name: 'constants/name'
+  label: 'constants/label'
+  'settings/display_summary': 'constants/display_summary'
+destination:
+  plugin: entity:field_config
+migration_dependencies:
+  required:
+    - d7_block_content_type
diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d7_block_content_type.yml b/core/modules/migrate_drupal/config/install/migrate.migration.d7_block_content_type.yml
new file mode 100755
index 0000000..b799204
--- /dev/null
+++ b/core/modules/migrate_drupal/config/install/migrate.migration.d7_block_content_type.yml
@@ -0,0 +1,16 @@
+id: d7_block_content_type
+label: Drupal 7 block content type
+migration_tags:
+  - Drupal 7
+source:
+  # We do an empty source and a proper destination to have an idmap for
+  # migration_dependencies.
+  plugin: empty
+  constants:
+    id: basic
+    label: Basic
+process:
+  id: 'constants/id'
+  label: 'constants/label'
+destination:
+  plugin: entity:block_content_type
diff --git a/core/modules/migrate_drupal/src/Tests/d7/MigrateBlockContentBodyFieldTest.php b/core/modules/migrate_drupal/src/Tests/d7/MigrateBlockContentBodyFieldTest.php
new file mode 100644
index 0000000..95382b1
--- /dev/null
+++ b/core/modules/migrate_drupal/src/Tests/d7/MigrateBlockContentBodyFieldTest.php
@@ -0,0 +1,64 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\migrate_drupal\Tests\d7\MigrateBlockContentBodyFieldTest.
+ */
+
+namespace Drupal\migrate_drupal\Tests\d7;
+
+use Drupal\field\Entity\FieldConfig;
+use Drupal\field\Entity\FieldStorageConfig;
+use Drupal\field\FieldConfigInterface;
+use Drupal\field\FieldStorageConfigInterface;
+use Drupal\migrate\MigrateExecutable;
+
+/**
+ * Attaches a body field to the custom block type.
+ *
+ * @group migrate_drupal 7.x
+ * @migration d7_block_content_type
+ * @migration d7_block_content_body_field
+ */
+class MigrateBlockContentBodyFieldTest extends MigrateDrupal7TestBase {
+
+  static $modules = array('block', 'block_content', 'filter', 'text');
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function setUp() {
+    parent::setUp();
+    $this->installConfig(array('block_content'));
+    $this->installEntitySchema('block_content');
+
+    $migration = entity_load('migration', 'd7_block_content_type');
+    $executable = new MigrateExecutable($migration, $this);
+    $executable->import();
+
+    $migration = entity_load('migration', 'd7_block_content_body_field');
+    $executable = new MigrateExecutable($migration, $this);
+    $executable->import();
+  }
+
+  /**
+   * Tests the block content body field migration.
+   */
+  public function testBlockContentBodyFieldMigration() {
+    /** @var \Drupal\field\FieldStorageConfigInterface $storage */
+    $storage = FieldStorageConfig::load('block_content.body');
+    $this->assertTrue($storage instanceof FieldStorageConfigInterface);
+    $this->assertIdentical('block_content', $storage->getTargetEntityTypeId());
+    $this->assertIdentical(['basic'], array_values($storage->getBundles()));
+    $this->assertIdentical('body', $storage->getName());
+
+    /** @var \Drupal\field\FieldConfigInterface $field */
+    $field = FieldConfig::load('block_content.basic.body');
+    $this->assertTrue($field instanceof FieldConfigInterface);
+    $this->assertIdentical('block_content', $field->getTargetEntityTypeId());
+    $this->assertIdentical('basic', $field->getTargetBundle());
+    $this->assertIdentical('body', $field->getName());
+    $this->assertIdentical('Body', $field->getLabel());
+  }
+
+}
diff --git a/core/modules/migrate_drupal/src/Tests/d7/MigrateBlockContentTypeTest.php b/core/modules/migrate_drupal/src/Tests/d7/MigrateBlockContentTypeTest.php
new file mode 100644
index 0000000..ea289ca
--- /dev/null
+++ b/core/modules/migrate_drupal/src/Tests/d7/MigrateBlockContentTypeTest.php
@@ -0,0 +1,47 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\migrate_drupal\Tests\d7\MigrateBlockContentTypeTest.
+ */
+
+namespace Drupal\migrate_drupal\Tests\d7;
+
+use Drupal\block_content\BlockContentTypeInterface;
+use Drupal\block_content\Entity\BlockContentType;
+use Drupal\migrate\MigrateExecutable;
+
+/**
+ * Creates the custom block content type.
+ *
+ * @group migrate_drupal 7.x
+ * @migration d7_block_content_type
+ */
+class MigrateBlockContentTypeTest extends MigrateDrupal7TestBase {
+
+  static $modules = array('block', 'block_content', 'filter', 'text');
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function setUp() {
+    parent::setUp();
+    $this->installConfig(array('block_content'));
+    $this->installEntitySchema('block_content');
+
+    $migration = entity_load('migration', 'd7_block_content_type');
+    $executable = new MigrateExecutable($migration, $this);
+    $executable->import();
+  }
+
+  /**
+   * Tests the block content type migration.
+   */
+  public function testBlockMigration() {
+    /** @var \Drupal\block_content\BlockContentTypeInterface $entity */
+    $entity = BlockContentType::load('basic');
+    $this->assertTrue($entity instanceof BlockContentTypeInterface);
+    $this->assertIdentical('Basic', $entity->label());
+  }
+
+}
