diff --git a/responses/__init__.py b/responses/__init__.py
index 130f8c0..43474ff 100644
--- a/responses/__init__.py
+++ b/responses/__init__.py
@@ -760,18 +760,22 @@ class RequestsMock(object):
 
         if match.passthrough:
             logger.info("request.passthrough-response", extra={"url": request.url})
-            return _real_send(adapter, request, **kwargs)
-
-        try:
-            response = adapter.build_response(request, match.get_response(request))
-        except BaseException as response:
-            match.call_count += 1
-            self._calls.add(request, response)
-            response = resp_callback(response) if resp_callback else response
-            raise
+            response = _real_send(adapter, request, **kwargs)
+        else:
+            try:
+                response = adapter.build_response(request, match.get_response(request))
+            except BaseException as response:
+                match.call_count += 1
+                self._calls.add(request, response)
+                response = resp_callback(response) if resp_callback else response
+                raise
 
         if not match.stream:
-            response.content  # NOQA
+            content = response.content
+            if kwargs.get("stream"):
+                response.raw = BufferIO(content)
+            else:
+                response.close()
 
         response = resp_callback(response) if resp_callback else response
         match.call_count += 1

diff --git a/responses/test_responses.py b/responses/test_responses.py
index 16b5503..f9cc629 100644
--- a/responses/test_responses.py
+++ b/responses/test_responses.py
@@ -1296,6 +1296,24 @@ def test_passthrough_response(httpserver):
         resp = requests.get(httpserver.url)
         assert_response(resp, "OK")
 
+        assert len(responses.calls) == 3
+        responses.assert_call_count(httpserver.url, 1)
+
+    run()
+    assert_reset()
+
+
+def test_passthrough_response_stream(httpserver):
+    httpserver.serve_content("OK", headers={"Content-Type": "text/plain"})
+
+    @responses.activate
+    def run():
+        responses.add(PassthroughResponse(responses.GET, httpserver.url))
+        content_1 = requests.get(httpserver.url).content
+        with requests.get(httpserver.url, stream=True) as resp:
+            content_2 = resp.raw.read()
+        assert content_1 == content_2
+
     run()
     assert_reset()
 

Passthrough Responses should appear in CallList
<!--
Please provide some context on what problem you are trying to solve and how this feature is going to help.
-->

Currently, Passthrough responses do not appear in the `CallList` after termination of the test. A successful match does also not increase the call count of a `PassthroughResponse`.
responses/test_responses.py::test_passthrough_response
responses/test_responses.py::test_response responses/test_responses.py::test_response_encoded responses/test_responses.py::test_response_with_instance responses/test_responses.py::test_replace[http://example.com/two-http://example.com/two] responses/test_responses.py::test_replace[original1-replacement1] responses/test_responses.py::test_replace[http://example\\.com/two-http://example\\.com/two] responses/test_responses.py::test_replace_error[http://example.com/one-http://example\\.com/one] responses/test_responses.py::test_replace_error[http://example\\.com/one-http://example.com/one] responses/test_responses.py::test_replace_response_object_error responses/test_responses.py::test_upsert_replace[http://example.com/two-http://example.com/two] responses/test_responses.py::test_upsert_replace[original1-replacement1] responses/test_responses.py::test_upsert_replace[http://example\\.com/two-http://example\\.com/two] responses/test_responses.py::test_upsert_add[http://example.com/two-http://example.com/two] responses/test_responses.py::test_upsert_add[original1-replacement1] responses/test_responses.py::test_upsert_add[http://example\\.com/two-http://example\\.com/two] responses/test_responses.py::test_remove responses/test_responses.py::test_response_equality[args10-kwargs10-args20-kwargs20-True] responses/test_responses.py::test_response_equality[args11-kwargs11-args21-kwargs21-False] responses/test_responses.py::test_response_equality[args12-kwargs12-args22-kwargs22-False] responses/test_responses.py::test_response_equality[args13-kwargs13-args23-kwargs23-True] responses/test_responses.py::test_response_equality_different_objects responses/test_responses.py::test_connection_error responses/test_responses.py::test_match_querystring responses/test_responses.py::test_match_empty_querystring responses/test_responses.py::test_match_querystring_error responses/test_responses.py::test_match_querystring_regex responses/test_responses.py::test_match_querystring_error_regex responses/test_responses.py::test_match_querystring_auto_activates responses/test_responses.py::test_match_querystring_missing_key responses/test_responses.py::test_accept_string_body responses/test_responses.py::test_accept_json_body responses/test_responses.py::test_no_content_type responses/test_responses.py::test_arbitrary_status_code responses/test_responses.py::test_throw_connection_error_explicit responses/test_responses.py::test_callback responses/test_responses.py::test_callback_exception_result responses/test_responses.py::test_callback_exception_body responses/test_responses.py::test_callback_no_content_type responses/test_responses.py::test_callback_content_type_dict responses/test_responses.py::test_callback_content_type_tuple responses/test_responses.py::test_regular_expression_url responses/test_responses.py::test_custom_adapter responses/test_responses.py::test_responses_as_context_manager responses/test_responses.py::test_activate_doesnt_change_signature responses/test_responses.py::test_activate_mock_interaction responses/test_responses.py::test_activate_doesnt_change_signature_with_return_type responses/test_responses.py::test_activate_doesnt_change_signature_for_method responses/test_responses.py::test_response_cookies responses/test_responses.py::test_response_secure_cookies responses/test_responses.py::test_response_cookies_multiple responses/test_responses.py::test_response_callback responses/test_responses.py::test_response_filebody responses/test_responses.py::test_use_stream_twice_to_double_raw_io responses/test_responses.py::test_assert_all_requests_are_fired responses/test_responses.py::test_allow_redirects_samehost responses/test_responses.py::test_handles_unicode_querystring responses/test_responses.py::test_handles_unicode_url responses/test_responses.py::test_handles_unicode_body responses/test_responses.py::test_handles_buffered_reader_body responses/test_responses.py::test_headers responses/test_responses.py::test_legacy_adding_headers responses/test_responses.py::test_auto_calculate_content_length_string_body responses/test_responses.py::test_auto_calculate_content_length_bytes_body responses/test_responses.py::test_auto_calculate_content_length_json_body responses/test_responses.py::test_auto_calculate_content_length_unicode_body responses/test_responses.py::test_auto_calculate_content_length_doesnt_work_for_buffered_reader_body responses/test_responses.py::test_multiple_responses responses/test_responses.py::test_multiple_urls responses/test_responses.py::test_multiple_methods responses/test_responses.py::test_passthrough_flag responses/test_responses.py::test_passthrough_response_stream responses/test_responses.py::test_passthru_prefixes responses/test_responses.py::test_passthru responses/test_responses.py::test_passthru_regex responses/test_responses.py::test_method_named_param responses/test_responses.py::test_passthru_unicode responses/test_responses.py::test_custom_target responses/test_responses.py::test_cookies_from_headers responses/test_responses.py::test_request_param[http://example.com] responses/test_responses.py::test_request_param[http://example.com/some/path] responses/test_responses.py::test_request_param[http://example.com/other/path/] responses/test_responses.py::test_request_param_with_multiple_values_for_the_same_key responses/test_responses.py::test_assert_call_count[http://example.com] responses/test_responses.py::test_assert_call_count[http://example.com?hello=world] responses/test_responses.py::test_request_matches_post_params responses/test_responses.py::test_request_matches_empty_body responses/test_responses.py::test_request_matches_params responses/test_responses.py::test_fail_request_error responses/test_responses.py::test_response_representations[response_params0-<Response(url='http://example.com/' responses/test_responses.py::test_response_representations[response_params1-<Response(url='http://another-domain.com/' responses/test_responses.py::test_response_representations[response_params2-<Response(url='http://abcd.com/' responses/test_responses.py::test_mocked_responses_list_registered responses/test_responses.py::test_rfc_compliance[http://service-A/foo?q=fizz-http://service-a/foo?q=fizz] responses/test_responses.py::test_rfc_compliance[http://service-a/foo-http://service-A/foo] responses/test_responses.py::test_rfc_compliance[http://someHost-AwAy/-http://somehost-away/] responses/test_responses.py::test_rfc_compliance[http://fizzbuzz/foo-http://fizzbuzz/foo]